[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