[devel] О кодировке названий файлов при монтировании

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Вт Фев 22 09:24:28 MSK 2005


Vitaly Lipatov wrote:

>On Monday 21 February 2005 20:29, Alexey Morozov wrote:
>
>  
>
>>Народ, по-моему, вы маетесь ......
>>    
>>
>Вы это скажите тем, кто пытается iocharset в fstab запихивать.
>  
>
HAL'у

>  
>
>>Задача в большинстве случаев не определить "кодировку файловой
>>системы", так как в тех файловых систем, для которых этот
>>    
>>
>Речь идёт о кодировке названий файлов в системе
>(не в монтируемых системах, а та, которая принята для именования
>файлов).
>  
>
А зачем ?

>>параметр имеет смысл (в первую очередь - варианты FAT и ISO),
>>уже давно используется (двухбайтный) ЮНИКОД. Задача
>>    
>>
>Это думаю всем понятно.
>
>  
>
>>СОГЛАСОВАТЬ эту кодировку (ЮНИКОД) с кодировкой
>>_пользователя_. А это, извините, совсем другая задача. В общем
>>    
>>
>Мне кажется, в _системе_ все файлы должны именоваться в одной 
>кодировке. Если нужны исключения - объясните и отдельно укажите.
>А кодировка пользователя - это что такое? Его локаль?
>  
>
В установленной системе - да. Но тоже очень сложно. Как быть со случаем, 
когда на сервере лежат файлы от одного пользователя, названные в CP1251 
и от другого - в KOI8-R ?

>  
>
>>случае, не решаемая, так как налицо явная нестыковка
>>"системного" и "пользовательского" уровня обработки данных.
>>"Системная" кодировка со всей необходимостью одна (постольку
>>поскольку у нас разделяемый fstab). А вот "пользовательских"
>>    
>>
>Вот о ней и речь.
>
>  
>
>>кодировок может быть до черта извините, хоть каждое новое
>>приложение в своей локали пускать, делов-то. Не говоря уже о
>>нескольких пользователях, одновременно имеющих сеансы в
>>системе.
>>    
>>
>Проблемы пользователей, имеющие отличную от системной локаль,
>давайте обсудим отдельно:
> - примеры, зачем это нужно
> - возможные варианты решения (см. в этом обсуждении написанное 
>Вячеславом)
>  
>
В общем то мы идем к тому, что бы начиная с 3.0 каждый пользователь мог 
для себя персонально выставлять локаль, раскладку клавиатуры (во всяком 
случае в xorg), шрифты и т.д.

>  
>
>>Единственным решением, которое худо-бедно может претендовать
>>на некоторую универсальность (ну, помимо банального
>>использования содержимого /etc/sysconfig/i18n) является
>>организация (через dbus, вестимо, куда ж нынче без него)
>>_обратной связи_ между HAL и пользовательским сеансом. То
>>есть, сценарий использования примерно таков:
>>
>>HAL, почуяв устройство с подходящей файловой системой, кидает
>>броадкаст сообщение, о том, что-де, обнаружен FAT или там NTFS
>>или еще какой ISO9660 позорный, требуется указать, как его
>>монтировать. Соответствующий _пользовательский_ процесс,
>>запущенный при старте сеанса, сверяется с какой-либо своей
>>настройкой (например, получает значение LC_CTYPE, как вариант
>>или еще что) и отвечает HAL'у, что-де так и так,
>>предпочитаемая локаль пользователя такая-то и такая-то,
>>использовать такой-то и такой-то чарсет для конвертации
>>данных.
>>    
>>
>Это всё замечательно. Сначала я хотел бы решить проблемы 90% 
>пользователей, которых кормят словами, что кодировка файловой 
>системы неопределимое понятие в общем случае, а потому давай-ка 
>ты юзер пиши свои charset'ы, заодно и набирать на клавиатуре 
>лучше научишься. Простая была проблема, которая десятилетиями не 
>решается.
>  
>
Это не решает проблемы, к сожалению.

>  
>
>>Да-да, я уже слышу за спиной шаги тех, кто угрожает порвать
>>меня с такими решениями на четырехцветный флаг. Поэтому и
>>    
>>
>Решение хорошее. Как только в системе будет dbus и hal,
>обязательно вернёмся.
>  
>
Оно уже здесь. hotplug перестал модифицировать (с alt7) fstab, отдав это 
hal'у.

>  
>
>>предлагается не маяться ...... и попросту забить параметр в
>>/etc/sysconfig/i18n, а на основании этого параметра
>>формировать настройки HAL'у. Будет работать для 90% случаев,
>>по крайней мере.
>>    
>>
>Этот параметр там уже есть в принципе (LANG), если нужен другой -
>давайте обоснуем.
>Между прочим, ваше резюме - это то, что я и предлагаю.
>Ввести единое место для хранения кодировки файловой системы.
>И предлагается это делать с помошью get_filename_encoding
>или natspec -f
>  
>
А как быть с теми fs, которые знать не знаю про такое понятие, как 
iocharset ?




Подробная информация о списке рассылки Devel