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

Vitaly Lipatov =?iso-8859-1?q?lav_=CE=C1_altlinux=2Eru?=
Вс Фев 27 19:57:08 MSK 2005


On Sunday 27 February 2005 20:16, Alexey Morozov wrote:
> On Sun, Feb 27, 2005 at 05:37:58PM +0300, Vitaly Lipatov wrote:
> > On Sunday 27 February 2005 15:37, Alexey Morozov wrote:
> > > Что касается примеров, как можно сломать - очень просто.
> > > Достаточно определить (и начать пользоваться) локалью,
> > > которая отсутствует в ваших мапах. Плюс к тому, мне
> > > показалось, что
> >
> > Ну попробуйте. У меня все локали - glibc. Значит, и там её
> > нет.
>
> Но не все локали glibc у вас. Так понятнее?
Чем вы можете это объяснить? "У меня" - 333 локали. Я их взял из 
установленного glibc-locales-2.3.3.200406160000-alt2

> > Ну что же вы всё общие слова-то?
> > И, кстати, что обсуждаем?
>
> Методологию соответствия локали и чарсета. У вас (вернее, да,
А я вообще-то надеялся, что мы придём к тому, что
1) Методологию можно и нужно уточнять в процессе использования
2) Предварительный вариант реализации, покрывающий много случаев, 
готов.
3) Обсуждать надо вопросы применения libnatspec, а не её 
алгоритмы.

> конечно, в проекте WINE, код которого вы анализировали) этот
> вопрос решен чрезвычайно просто: взяли наиболее
Не так уж и просто.
> распространенные локали (фикс. список) и сопоставили каждой из
Другого варианта быть не может - узнать какая кодировка в Windows 
можно только из Windows.
> них кодировку в юниксе и в винде. На выходе имеем словарь
> соответствий фиксированной опять же длины. Что несколько не
Который покрывает все известные локали, и будет расти по мере 
развития проекта и появления новых локалей.
> сочетается с возможностями программы localedef. Вот и вся
> претензия моя.
Я исходил из предпосылки, что в системе уже имеются все 
необходимые локали. Если вы заявляете, что намерены на ходу 
определять локали с помощью localedef, так и скажите.

> > Кстати говоря, тут есть пролёт с codepage -> короткие
> > названия будут кракозябрами.
>
> Коротких названий нет. Если где-то есть драйвера FAT, которые
> не пишут "юникодных имен", эти случаи можно считать
> маргинальными и к делу не относящимися.
"Великолепный" подход. Я считаю что вы не правы. Вдобавок 
рекомендую вспомнить, как в Win9X ?? длинное имя не пишется,
если достаточно короткого.

> > > Ошибка в том, что для татарского (на основе кириллицы)
> > > используется кодовая таблица, отсутствующая в описании в
> > > lib/data/get_charset_data.h
> >
> > А что за локаль и как кодировка называется?
>
> Я не вполне уверен, как она называется, лучше спросить у
> носителей языка, возможно, это какое-то расширение CP1251. В
> любом случае, в ваших таблицах упоминается только tt_RU.utf8,
> который у нас, в общем, нерабочий ;-)
В общем, 
1) никакой ошибки я не вижу (поскольку отсутствие в glibc локали 
для татарского не является ошибкой libnatspec)
2) заявление ваше об ошибке было поверхностно, если не сказать 
голословно.

> Нет, по логике вещей. Но это и не обязательно. Достаточно,
> например, определить локаль, отличающуюся от ru_RU.KOI8-R
> значением, к примеру, LC_NUMERIC ;-). Новое, не описанное
> доселе имя, и вся схема, кажется, ломается.
1. А чем имя-то станет отличаться?
2. Определяйте локали сколько угодно, но через glibc
3. ДА, для локалей, НЕ ПОДДЕРЖИВАЕМЫХ в системе, natspec, 
ВОЗМОЖНО, сработает неправильно. НО это, IMHO, безразлично.


-- 
Lav
Виталий Липатов
Санкт-Петербург
GNU! ALT Linux Team! LaTeX! LyX!



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