Создание .enc файлов для XML::Parser

В дефолтной сборке XML::Parser’а отсутствует enc-файл для кодировки windows-1251. Поэтому XML::Parser ругается на XML-файлы, в начале которых указана кодировка windows-1251.

Как создать требуемый enc-файл для любой кодировки?

Очень просто.

  1. Идем на ftp://ftp.unicode.org/Public/MAPPINGS/ и находим требуемую кодировку. Для windows-1251 это будет ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT. Скачиваем этот файл.
  2. Устанавливаем (если ещё не установлен) модуль XML::Encoding.
  3. $ make_encmap windows-1251 CP1251.TXT >windows-1251.xml
  4. Открываем windows-1251.xml и редактируем первую строку. Дописываем свойство expat=’yes’.
  5. $ compile_encoding windows-1251.xml
  6. $ sudo cp windows-1251.enc /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi/XML/Parser/Encodings/ (в вашем случае путь может отличаться от моего)

2 comments ↓

#1 Сергей on 09.09.08 at 11:03 am

Это, конечно чудно, но как быть пользователю виртуального хостинга, в котором так же нет enc-файл для кодировки windows-1251?

#2 Дмитрий Росляков on 09.09.08 at 11:30 am

Попросить хостера установить нужный файл.

Leave a Comment