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: