Re: [Comm] Re: Русский в разных локалях

Dmitry E. Oboukhov
1970-01-01T00:00:02Z

>
>
>>>Что Вам мешает распространить меры по приведению содержимого файла к виду,
>>>понятному получателю, на имя файла?
>>>
>>>
>>демагогия, извините
>>
>>
>
>Нет, не демагогия, а всего лишь точка зрения, не совпадающая с Вашей.
>
>
согласен ;)

>В *общем* случае про него такое сказать нельзя - может подлежать конвертации,
>а может и не подлежать. (Ваш пример с коллекцией mp3 показателен: теги
>в файлах у вас в id3v2 с utf-8? или все же в cp1251, как принято "здесь"?)
>
>И что у Вас называется разными _клиентами_ с разными локалями?
>Два процесса на одном и том же хосте?
>
ага либо теги в UTF-8 делаем,
либо (что уже чаще) конвертим все в OGG - там юникодные теги

>>вот реальный случай:
>>на компе работает два юзера: локаль 1251 и КОИ
>>они "делят" между собой коллекцию mp3 c русскими
>>именами в названиях файлов.
>>Сейчас это у меня реализованно с посылки о том, что
>>оба юзера на одном компе _одновременно_ не работают,
>>и каждый монтирует устройство со своими опциями...
>>не извращение ?
>>
>>
>
>Как Вы себе представляете в этом случае процесс перевода кодировки?
>Не на уровне "тыцнул на koi и оно стало в koi", пожалуйста, а на уровне
>деталей работы VFS. Если предложите работающее решение - может, и можно
>будет внедрить.
>
>
тут хорошо уже написали: во многих случаях, данные
идут с информацией о кодировке внутри (а-ля ШТМЛ)
это к содержимому

к именам файлов - ФС хранящая имена в юникоде.
НТФС, например, если бы
её поддержка не была хфиговой в линуксе, то разделяемый
раздел можно было бы сделать именно на нём.
имена - в юникоде, то есть при сохранении файла имя
его _обязано_ пройти конвертацию с иочарсета монтирования
в юникод. и обратно...

>Навскидку могу предложить написание библиотечки с перехватами всех системных
>вызовов, которые используют пути в FS, и конверсией этих имен в некоторую
>стандартную на этом хосте кодировку. Грузить через LD_PRELOAD.
>Нет, я писать такую библиотечку не буду, и готовых не знаю.
>
>
да с этим трудно конечно
надо будет пошарить по исходникам посмотреть как оно работает,
мб есть простое решение....