[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Переход на UTF8: проблема с именами файлов на DVD



On 2010.01.03 at 23:57:54 +0300, Stanislav Maslovski wrote:

> > Нет, не потребует. Потребуется только вызов 
> > getlocale, который позволит интересующейся функции libc узнать что
> > думает про текущую локаль ядро.
> 
> Ты путаешь локаль и то, что зовется кодировкой локали. Просто из имени

Я не путаю. Это ты путаешь НАЗВАНИЕ локали и всю кучу таблиц, которые с
этим названием связаны. Название я предлагаю хранить в ядре, а из таблиц
там только те, которые ядром и используются.

> Собственно, о чем я и толкую: локали - это в общем случае нечто
> гораздо большее, чем просто кодовые таблицы. Поэтому, а так же потому,
> что локали тесно завязаны на юзерспейс, тянуть их в ядро нет никакого
> смысла.
> 
> > Например, из-за наличия case insensitive файловых систем в ядре не
> > лишними будут национальные правила upcase/locase.
> 
> Имхо, лишнее, так как на таких файловых системах имена файлов
> подразумеваются хранящимися в одной, наперед заданной и известной на

Причем здесь кодировка!!! Блин, ну встречаются же на свете настолько
неграмотные люди!!! В пределах одной iso8859-1 имеются разные,
несовместимые между собой правила перевода в заглавные и обратно.
Например, в английской локали strlower("SS") будет ss а в немецкой -
буква эсцет.

Еще более интересные штуки бывают с title case. Например в голландском
title case от ijsselmeer будет IJsselmeer - то есть дифтонг IJ
переводится  в заглавные как одна буква. Но title case нам вроде в
именах файлов не нужен.

Соттветственно, как уже показано выше, если пользователь задал имя файла 
большими буквами в case sensitive файловой системе, а записано оно в
кодировке utf-8 мелкими буквами, то в английской и немецкой локали могут
получиться два разных файла.

А я еще романских языков не рассматривал. И при всем при этом за пределы
первых 256 codepoints unicode мы не выходим. 


Reply to: