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

Alexey Morozov =?iso-8859-1?q?alex-altlinux_=CE=C1_idisys=2Eiae=2Ensk=2Esu?=
Пн Фев 21 20:29:44 MSK 2005


On Sun, Feb 20, 2005 at 05:37:56PM +0300, Vitaly Lipatov wrote:
> On Friday 18 February 2005 20:16, Vitaly Lipatov wrote:
> > Проще всего умолчания о кодировках передавать через команду
> > mount, поскольку большинство операций монтирования происходит
> > через неё.
> Выпущен первый релиз библиотеки libnatspec (ушла в Incoming)
> До появления в Сизифе можно скачать пакеты на 
> ftp://ftp.altlinux.ru/pub/people/lav/natspec
Народ, по-моему, вы маетесь ......

Задача в большинстве случаев не определить "кодировку файловой системы",
так как в тех файловых систем, для которых этот параметр имеет смысл
(в первую очередь - варианты FAT и ISO), уже давно используется
(двухбайтный) ЮНИКОД. Задача СОГЛАСОВАТЬ эту кодировку (ЮНИКОД) с
кодировкой _пользователя_. А это, извините, совсем другая задача.
В общем случае, не решаемая, так как налицо явная нестыковка
"системного" и "пользовательского" уровня обработки данных.
"Системная" кодировка со всей необходимостью одна (постольку поскольку у
нас разделяемый fstab). А вот "пользовательских" кодировок может быть
до черта извините, хоть каждое новое приложение в своей локали пускать,
делов-то. Не говоря уже о нескольких пользователях, одновременно
имеющих сеансы в системе.

Единственным решением, которое худо-бедно может претендовать на
некоторую универсальность (ну, помимо банального использования
содержимого /etc/sysconfig/i18n) является организация (через dbus,
вестимо, куда ж нынче без него) _обратной связи_ между HAL и
пользовательским сеансом. То есть, сценарий использования примерно
таков:

HAL, почуяв устройство с подходящей файловой системой, кидает броадкаст
сообщение, о том, что-де, обнаружен FAT или там NTFS или еще какой
ISO9660 позорный, требуется указать, как его монтировать.
Соответствующий _пользовательский_ процесс, запущенный при старте сеанса,
сверяется с какой-либо своей настройкой (например, получает значение
LC_CTYPE, как вариант или еще что) и отвечает HAL'у, что-де так и так,
предпочитаемая локаль пользователя такая-то и такая-то, использовать
такой-то и такой-то чарсет для конвертации данных.

Да-да, я уже слышу за спиной шаги тех, кто угрожает порвать меня с
такими решениями на четырехцветный флаг. Поэтому и предлагается не
маяться ...... и попросту забить параметр в /etc/sysconfig/i18n, а
на основании этого параметра формировать настройки HAL'у. Будет работать
для 90% случаев, по крайней мере.

С уважением,
Алексей Морозов.

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050221/611cb57d/attachment-0001.bin>


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