Page 1 of 1

Не отображаются картинки

PostPosted: Thu May 28, 2009 9:18 am
by lexxion
Проблема такая.
Если ресурсы к словарю (картинки) упакованы в zip-архив, то не отображаются те из них, имена которых набраны кириллицей. Если те же картинки не упакованы и лежат в отдельной папке, то видно все.

Re: Не отображаются картинки

PostPosted: Thu May 28, 2009 1:16 pm
by ikm
Сейчас имена при поиски внутри zip-файлов кодируются в системную кодировку. Для windows это будет cp1251, для linux utf8 или koi8-r. Так как совершенно непонятно, в какой кодировке сейчас создается большинство zip-архивов популярными утилитами, не очень понятно, какое поведение должно тут быть правильным. По старому стандарту в zip-ах вообще только CP437 и всё :) А в jar-файлах (которые zip-ы внутри) например требуется использовать всегда utf8. Могу только сказать, что в linux стандартный zip пишет имена как есть, в той кодировке, в которой они хранятся в файловой системе.

Если кто-то готов поисследовать эту тему - вперед. В частности, если кто-то может сделать несколько крохотных zip-архивов, содержащих файлы с русскими именами в winrar, 7zip, winzip и других подобных популярных программах и их выложить - сделайте и выложите, а я посмотрю, что там и как внутри.

Re: Не отображаются картинки

PostPosted: Thu May 28, 2009 5:21 pm
by lexxion
Спасибо за ответ.
Сейчас сделал архивы для сравнения десятком утилит. Явные отличия, похоже, проявляют немногие.
http://www.onlinedisk.ru/file/148631/
Если нужно, сделаю в другом виде или на другом обменнике.
Еще постараюсь найти обобщенную инфу по теме.

Re: Не отображаются картинки

PostPosted: Thu May 28, 2009 8:21 pm
by ikm
Короче, они все используют CP866. Кроме TUGZip, который использует CP1251 в оглавлении, и CP866 в записи самого файла (что смахивает на глюк, но реально используется лишь первый, тот что в оглавлении). Ежели кто знает, как под виндовс перекодировать строку в "ту кодировку", которой в русской винде соответствует CP866 - просьба отписаться. Есть у меня ощущение, что это т.н. OEM encoding.