LINUX.ORG.RU

Проблемы с кодировкой


0

0

Подскажите - есть ли у кого какие идеи. Сижу сам на линухе. Тема такая - залил я на хостинг файлов архив с музыкой. Если человек, скачивающий архив - тоже юзает линь - то всё норм - названия файлов отображаются хорошо. Но - к сожалению - большинство сидит на винде, а у каждого такого человека - названия файлов отображаются криво. Название архива - норм, а файлы - иероглифами.

Я решил попробовать заливать файлы с флешки (думая, что если на флешке своя файловая система - то отображаться будет нормально). Но это не спасло ситуацию.

Есть у кого какие идеи? Как заливать файлы так, что бы они у всех отображались хорошо и при этом мне не использовать винду???)))))))


Ответ на: эм.. от CAHO

архива какой формат? и выполните в терминале команду locale. вывод сюда

vostrik ★★★☆
()

#include <telepat.h>
Пакуй в RAR

Nao ★★★★★
()

так, приношу извинения,но по техническим проблемам я вернусь позже

спасибо за помощь!!!! я вернусь!!!!!!

CAHO
() автор топика

Архивируйте в 7z, у него одна и та же кодировка на разных системах.

AITap ★★★★★
()

Подумал , что сейчас год эдак 2002, только наоборот (линукс/винда)

Так и лей - пошли нах

amorpher ★★★★★
()

Если архивируете tar-ом + какой-нибудь упаковщик, то проблема закономерна. Tar вообще ничего не знает про кодировку имён файлов, это не его задача, а у вас эта самая кодировка, скорее всего, UTF-8, поэтому использующие Linux не испытывают проблем (сейчас почти все пользуются UTF-локалями). В Windows же имена файлов кодируются в CP866 (для русской версии), поэтому распаковщик и выдаёт кракозябры.

Выхода здесь 3: * Использовать архиватор со своим представлением имён файлов. Из мне известных это RAR и 7zip. * Перед архивацией tar-ом конвертировать имена файлов в нужную кодировку. Тут поможет convmv * Использовать ascii-имена файлов. Гарантированно отсутствие проблем везде :-). Тем более для MP3 имена не критичны, есть тэги. Преобразовать можно тем же convmv (кодировка KOI7, это не совсем транслит, но на первое время сойдёт).

undertaker ★★
()
cat rename_translit 
#!/bin/sh
#		rename_translit --- переводит русские имена файлов в транслит
#
# Создан 22-го Май 2006 года в  9:24
#
rmspaces
for Name in `ls -1`
do
    Newname=`echo "$Name"| enconv | sed -e \
    "y/йукенгзхъфывапролдэсмитьбЙУКЕНГЗХЪФЫВАПРОЛДЭСМИТЬБ/jukengzh'fyvaproldesmit'bJUKENGZH'FYVAPROLDESMIT'B/"\
    -e "s/ц/tz/g"	\
    -e "s/ш/sh/g"	\
    -e "s/щ/sch/g"	\
    -e "s/ж/zh/g"	\
    -e "s/ч/ch/g"	\
    -e "s/ю/yu/g"	\
    -e "s/я/ya/g"	\
    -e "s/ё/yo/g"	\
    -e "s/Ё/YO/g"	\
    -e "s/Ц/TZ/g"	\
    -e "s/Ш/SH/g"	\
    -e "s/Щ/SCH/g"	\
    -e "s/Ж/ZH/g"	\
    -e "s/Ч/CH/g"	\
    -e "s/Ю/YU/g"	\
    -e "s/?/_/g"	\
    -e "s/Я/YA/g"`
    if [ "$Name" != "$Newname" ]; then
        mv "$Name" "$Newname"
	echo -e "$Name   ->    $Newname                             \r\c"
    fi
    if [ -d "$Newname" ]; then
	cd "$Newname"
	echo -e "\n\nDiving into $Newname"
	rename_translit
	cd ../
    fi
done
Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от thunar

морзянкой

:)

Вообще-то, на нашей местной файлопомойке я такой скрипт часто запускаю: на сервере кодировка utf8, у основной массы линуксовых пользователей - КОИ8-Р, у вантузячих - 1251. Вантузятники обычно меньше всего о других заботятся, и файлы именуют русскими буквами. Зато после переименования в транслит получается читабельное для всех.

Еще у меня где-то валялся скрипт для создания текстов сразу в четырех кодировках (кои, юникод, 1251 и транслит).

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.