Discussion:
charsets
(слишком старое сообщение для ответа)
Sergey Gernichenko
2007-05-11 07:55:58 UTC
Permalink
Доброго времени суток тебе, *All*!

Заархивировал под виндовсом файлы с русскими именами, теперь надо в линуксе их
распаковать, но чтобы сохранились имена. Как это сделать, если локаль в линуксе
koi8-r ?
Архивировал версией 3.51.

До скорых встреч, *All* С уважением, *Sergey*.
Eugene Roshal
2007-05-13 05:18:12 UTC
Permalink
Hello,

SG> Заархивировал под виндовсом файлы с русскими именами, теперь надо в
SG> линуксе их распаковать, но чтобы сохранились имена. Как это сделать, если
SG> локаль в линуксе koi8-r ? Архивировал версией 3.51.

RAR хранит неанглийские имена в Unicode, используя в линуксе для
преобразования в и из Unicode функции mbstowcs и wcstombs. Если эти функции
работают правильно, имена должны распаковаться корректно. Правда лучше взять
RAR/Linux 3.70. В нем я немного поменял вызов этих функций.

Eugene
Sergey Gernichenko
2007-05-13 15:19:48 UTC
Permalink
Доброго времени суток тебе, *Eugene*!

В воскресенье, 13 мая 2007 года, в 09:18, ты писал(а) мне:

SG>> Заархивировал под виндовсом файлы с русскими именами, теперь надо
SG>> в линуксе их распаковать, но чтобы сохранились имена. Как это
SG>> сделать, если локаль в линуксе koi8-r ? Архивировал версией 3.51.
ER> RAR хранит неанглийские имена в Unicode, используя в линуксе для
ER> преобразования в и из Unicode функции mbstowcs и wcstombs. Если эти
ER> функции работают правильно, имена должны распаковаться корректно.
ER> Правда лучше взять RAR/Linux 3.70. В нем я немного поменял вызов этих
ER> функций.
Rar/Linux я брал с сайта в день написания письма, когда LANG я выставил
ru_RU.KOI8-R, то имена распаковались неправильно.

Как проверить, правильно ли работают функции mbstowcs и wcstombs?


До скорых встреч, *Eugene* С уважением, *Sergey*.
Eugene Roshal
2007-05-14 05:23:03 UTC
Permalink
Hello,

SG> Rar/Linux я брал с сайта в день написания письма, когда LANG я выставил
SG> ru_RU.KOI8-R, то имена распаковались неправильно.

В тех случаях, когда оно работает под линуксом нормально, LANG обычно
оказывается установленным в utf-8. Почему с utf-8 эти функции работают
надежнее, я не знаю. Просто статистика.

SG> Как проверить, правильно ли работают функции mbstowcs и wcstombs?

Вызвать setlocale(LC_ALL,""), потом эти функции с русским текстом в качестве
параметра и проверить, корректно ли они преобразовали текст в/из Unicode.

Eugene

Loading...