Страница 1 из 3
UTF8+проблема отображения русских букв при чтении CD/DVD
Добавлено: 15 авг 2006, 15:26
kif0rt
Недавно перешёл на utf с koi8-r. Доволен. Только лажа какая-то с русскими буквами в файлах с DVD-RW привода ... Самое интересное, что везде кроме привода русксие буквы хорошо отображаются. Хотя настройки в fstab'e одинаковые.
Код: Выделить всё
/dev/hdc /media/cdrom0 udf,iso9660 ser,unhide,iocharset=utf8,noauto 0 0
Вроде ж нормально !?
Локаль естественно :
LANG=ru_RU.UTF-8
Добавлено: 15 авг 2006, 16:52
fa3a
Локаль естественно : LANG=ru_RU.UTF-8
не естественно.. все-таки естественно
ru_RU.utf8 или be_BY.utf8 (utf8 -- lowercase и без тире!!)..
e.g.
Код: Выделить всё
[ root@belhaven dir: /develop/loc/pasha/v540/bin/linux86 ]
=> locale -a | grep be
be_BY
be_BY.cp1251
be_BY.utf8
[ root@belhaven dir: /develop/loc/pasha/v540/bin/linux86 ]
=> locale -a | grep ru
ru_RU
ru_RU.iso88595
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.koi8u
ru_UA.utf8
Добавлено: 15 авг 2006, 17:23
ZvK
если убрать iocharset=utf8 и добавить utf8, меняется ситуация?
Добавлено: 15 авг 2006, 17:23
rain
Код: Выделить всё
rain@acnote:~$ cat /etc/environment
LANGUAGE="ru_RU:ru:en_GB:en"
LANG=ru_RU.UTF-8
rain@acnote:~$ cat /etc/fstab | grep cdrom
/dev/hdc /media/cdrom0 iso9660 ro,user,noauto,iocharset=utf8 0 0
Все нормально.
Добавлено: 15 авг 2006, 17:27
bobrik
UTF-8 пишется именно uppercase и с тире!!!
Перегенерить локали и понять!!
Добавлено: 15 авг 2006, 17:44
fa3a
bobrik писал(а):UTF-8 пишется именно uppercase и с тире!!!
Перегенерить локали и понять!!
ты ето в RedHat и Novell напиши, ибо в RHEL4 и SLES9 именно lowercase.
а главное больше восклицательных знаков добавь..
)
ты не путай стандарты и название локалей. если в дебиане название локали сответствует названию стандарта, то это всего-лишь совпадение..
Добавлено: 15 авг 2006, 17:59
fa3a
В догонку.. локаль может называться как угодно uppercase или lowevercase главное суть:
Код: Выделить всё
rogan[root]/root/pasha> locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
rogan[root]/root/pasha> locale charmap
UTF-8
Добавлено: 15 авг 2006, 18:21
fa3a
BTW here is a link to
Locale Names where it is stated that:
the syntax to build a locale name is determined as follows:
language[_territory][.codeset][@modifier]
where language is two lowercase alphabets described in ISO639, such as en for English, eo for Esperanto, and zh for Chinese, territory is two uppercase alphabets described in ISO3166, such as GB for United Kingdom, KR for Republic of Korea (South Korea), CN for China. There are no standard for codeset and modifier. GNU libc uses ISO-8859-1, ISO-8859-13, eucJP, SJIS, UTF8, and so on for codeset, and euro for modifier.
Добавлено: 15 авг 2006, 22:18
kif0rt
ZvK писал(а):если убрать iocharset=utf8 и добавить utf8, меняется ситуация?
не меняется. как были вопросики вместо руских букв так и остались. Локали перегенеривал сто раз, а толку - ноль. Мне вот интересно, почему разделы на венчестере обрабатываются нормально, а /dev/hdc не отображает русских !?
Добавлено: 16 авг 2006, 10:45
bobrik
У меня archlinux. Раньне была utf8, перегенерил локали, стала UTF-8, к тому же начал работать руссский в gtk1.2 и иксы перестали ругаться.
<10> [user@bobrik ~]$ cat /etc/locale.gen | grep RU
#ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
#ru_RU ISO-8859-5
#tt_RU.UTF-8 UTF-8
Добавлено: 16 авг 2006, 11:36
fa3a
возвращаясь к теме топика.. kif0rt, а почему ты решил, что CDROM должен отображаться в кодировке UTF8? Я к тому, что если при записи файлов на диск использовалась кодировка например cp1251, то соответсвенно и отображаться корректно они будет именно под локалью с соответсвующей кодировкой..
Добавлено: 16 авг 2006, 11:37
phaoost
kif0rt, iocharset=cp1251
Добавлено: 16 авг 2006, 16:16
rain
возвращаясь к теме топика.. kif0rt, а почему ты решил, что CDROM должен отображаться в кодировке UTF8? Я к тому, что если при записи файлов на диск использовалась кодировка например cp1251, то соответсвенно и отображаться корректно они будет именно под локалью с соответсвующей кодировкой..
man mount писал(а):
Mount options for iso9660
ISO 9660 is a standard describing a filesystem structure to be used on CD-ROMs. (This filesystem type is also seen on some DVDs. See also the udf filesystem.)
iocharset=value
Character set to use for converting 16 bit Unicode characters on CD to 8 bit characters. The default is iso8859-1.
utf8 Convert 16 bit Unicode characters on CD to UTF-8.
Добавлено: 16 авг 2006, 16:58
fa3a
rain писал(а):iocharset=value
Character set to use for converting 16 bit Unicode characters on CD to 8 bit characters. The default is iso8859-1.
utf8 Convert 16 bit Unicode characters on CD to UTF-8.
=> 1. согласно ману правильное использование опции utf8 следующее:
Код: Выделить всё
/dev/hdc /media/cdrom0 udf,iso9660 ser,unhide,utf8,noauto 0 0
, а не iocharset=utf8
2. если файлы при выжигании CD имеют в названии _только_ 1-байтные (т.е. 8-битные) символы, то с одиноковым успехом может использоваться опция iocharset=cp1251 также, как и опция монтирования utf8. Если же файлы в названии имеют символы более 1 байта (japanese, chinese, korean, etc), то в UTF-8 могут выглядеть кракозябры.
Добавлено: 16 авг 2006, 17:01
fa3a