2014-09-03 4 views
0

У меня есть XML, который не включает кодировку (кодировка/кодировка символов/набор символов/карта символов/код/​​кодовая страница). Это пример для одного, который делает:Как найти кодировку символов для файла?

<?xml version="1.0" encoding="UTF-8"?> 

XML-генерируется с помощью сценария Perl и следующий отрывок:

$fileName = $exportDirectory . $fileName; 
open FILE, ">$fileName" or die; 

Вопросы:

  1. В этом case, есть ли простой способ найти кодировку для сгенерированного XML?
  2. Сценарий, запрашивающий другие источники информации (например, базу данных Oracle) и добавляет данные в файл XML. Является ли кодировка кодировки продиктованной источником информации? Или с помощью операции с открытым файлом?
  3. В общем, есть ли простой способ найти кодировку произвольного файла?

Я пытался использовать LibXML:

Perl -MXML :: LibXML -e 'XML :: LibXML-> load_xml (место => "2.xml")' 2.xml: 1364531: ошибка парсера: вход не соответствует UTF-8, укажите кодировку! Б 0xbf 0x30 0x39 0x20 женщина представлена ​​весной 09 из-за т ^

Я надеюсь, что поставляется достаточно информации. Пожалуйста, дайте мне знать, нужна ли дополнительная информация.

+0

Duplicate: http://stackoverflow.com/questions/637855/how-to-best-detect-encoding-in-xml-file –

ответ

1

Вы можете использовать enca или chardet.

Возможно, вам придется скомпилировать сам. Что касается chardet, есть шанс, что ваше репо содержит упакованный скрипт.

Enca работает только для европейских языков и требует, чтобы вы рассказали, на каком языке находится этот файл. Chardet усугубляет дифференциацию европейских языков, кодированных 8-разрядными кодировками, но лучше работает с неевропейским текстом.

Смежные вопросы