Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Имена файлов


Автор: Borland_Delphi_6 24.11.2002, 05:11
После монтирования ф.с. FAT32 оказалось, что русские имена файлов, написанных в кодировке ср-1251 отображаются неверно ( знаками вопросов ). Можно ли это исправить?

Автор: Medved 30.11.2002, 03:21
Windows имеет возможность давать имена файлов в кодировке Unicode, поэтому пользователи могут давать осмысленные имена своим файлам. Linux, однако, не дает полной поддержки для Unicode, поэтому если ты монтируешь диск Windows VFAT, то увидишь, что подобные имена состоят из вопросительных знаков и прочего мусора.

Здесь указан путь, как получить правильное преобразование:


Убедись, что ядро скомпилировано с поддержкой codepage (в частности, с поддержкой кодовых страниц cp866 и KOI8-R -- возможно, в виде модулей ls /lib/modules/`uname -r`/fs/nls_*).
Добавь следующие опции при выполнении mount команды mount:
codepage=866,iocharset=koi8-r

или пропиши в /etc/fstab/ примерно такую строчку:
/dev/hda5 /mnt/d vfat noexec,dev,suid,rw,umask=002, codepage=866,iocharset=koi8-r, gid=101 0 0

для выяснения подробностей смотри man mount.

Автор: Borland_Delphi_6 30.11.2002, 04:27
Прочитай мою подпись... Как я узнаю, как у меня ядро собранно?

Автор: Medved 30.11.2002, 07:41
Ты по моему запутался..... прочти мое предыдущее сообщение еще раз....

Автор: Borland_Delphi_6 30.11.2002, 20:31
Я имею в виду, как мне узнать, скомпилированно ли ядро с поддержкой срр-866? ( может, опять что не понял  ??? )
А вообще, попробовал так: mount /dev/hda2 /mnt/hda2 codepage=866,iocharset=koi8-r, на что мне конечно весело ответели: Usage: mount -V                 : print version
      mount -h                 : print this help
      mount                    : list mounted filesystems
      mount -l                 : idem, including volume labels
So far the informational part. Next the mounting.
The command is `mount [-t fstype] something somewhere'.
Details found in /etc/fstab may be omitted.
      mount -a [-t|-O] ...     : mount all stuff from /etc/fstab
      mount device             : mount device at the known place
      mount directory          : mount known device here
      mount -t type dev dir    : ordinary mount command
Note that one does not really mount a device, one mounts
a filesystem (of the given type) found on the device.
One can also mount an already visible directory tree elsewhere:
      mount --bind olddir newdir
A device can be given by name, say /dev/hda1 or /dev/cdrom,
or by label, using  -L label  or by uuid, using  -U uuid .
Other options: [-nfFrsvw] [-o options].
For many more details, say  man 8 mount .
А на счет того, что я запутался, так это само собой...  ;-)

Автор: Borland_Delphi_6 30.11.2002, 20:32
Не знаю, что это за глюки, но все мои сообщения из Linux дублируются!!!

Автор: Medved 1.12.2002, 07:45
Если ты увидел хоть одну русскую букву у себя в Linux, значит в ядро лезть не нужно...насколько я понимаю, у тебя проблема в том, что ты не видишь руские буквы, когда открываешь диски vfat. так в этом и разбирайся, а не лезь в ядро....

вот строчка которая должна быть в fstab  
Код

/dev/hda5 /mnt/d vfat noexec,dev,suid,rw,umask=002, сodepage=866,iocharset=koi8-r, gid=101 0 0


когда я ее вписал, у меня тоже ничего не поучилось..... но я поэксперементировал... и все заработало..... советую это сделать и тебе....

Автор: Borland_Delphi_6 2.12.2002, 16:31
ОК! Спасибо, попробую!
З.Ы У меня точно ничего не получится, потому, что у меня нет hda5  :)

Автор: NightGoblin 4.12.2002, 11:45
Цитата(Pegas @ 30.11.2002, 23:45)
вот строчка которая должна быть в fstab  
Код

/dev/hda5 /mnt/d vfat noexec,dev,suid,rw,umask=002, сodepage=866,iocharset=koi8-r, gid=101 0 0


когда я ее вписал, у меня тоже ничего не поучилось..... но я поэксперементировал... и все заработало..... советую это сделать и тебе....

Кстати, кстати... У меня вот тоже проблема подобного рода: имена выводятся, но без перекодировки, то есть, выводится какая-то дрянь с твердыми знаками и значками копирайта :D Попробовал вписать то, что ты указал - вообще на вопросики поменялись ;-) Без iocharset - перекодировка не работает (хоть 866, хоть 1251 - один хрен), с ним - только вопросики :) В общем, не подскажешь, как именно у тебя сделано? :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)