Как я могу проанализировать XML-файл, который не в UTF-8 в PHP с SimpleXML? - PullRequest
1 голос
/ 26 февраля 2011

Я использую simpleXML в PHP для получения XML-файла. Дело в том, что кодировка xml-файла отсутствует в utf-8. Это в евк-кр.

<?xml version="1.0" encoding="euc-kr" ?> 

Итак, если я использовал simpleXML для извлечения данных, текст, который не на английском, просто вылетает. (но он правильно печатает структуры и все ... это просто тот текст на корейском сбой) Есть ли способ установить кодировку для simpleXML?

ИЛИ В любом случае, я могу изменить XML-файл на кодировку с помощью utf-8 ??

Я только что попытался использовать str_replace ('euc-kr', 'utf-8', $ data), чтобы изменить слова, но это, похоже, не меняет исходные типы файлов. Потому что это вызывает ошибку типа

Input is not proper UTF-8, indicate encoding ! Bytes: 0xB0 0xB3 0xC6 0xF7

Как я могу решить эту проблему? Кстати, у меня нет прав на изменение содержимого XML-файла

Ответы [ 2 ]

1 голос
/ 26 февраля 2011

Предполагая, что вы хотите получить ту же кодировку, я бы использовал DomDocument.Но если вам нужен simplexml, вы можете загрузить его через DomDocument, а затем преобразовать в simplexml:

$dom = new DomDocument('1.0', 'euc-kr');
$dom->load('file.xml'); // or loadXml($string);
$simple = simplexml_import_dom($dom->documentElement);

Затем, когда вы закончите, просто $dom->save($filename); ...

0 голосов
/ 26 февраля 2011

Я только что нашел решение.

$data = str_replace('euc-kr','utf-8',$data);
$data = iconv('euc-kr', 'utf-8', $data);

вышеуказанные коды решили это решение.

...