我在PHP中使用simpleXML来获取xml文件。 问题是xml文件的编码不在utf-8中。它在euc-kr。
<?xml version="1.0" encoding="euc-kr" ?>
所以,如果我使用simpleXML来获取数据,那么不是英文的文本就会崩溃。 (但它正确打印结构和一切......它只是韩国版崩溃的文字) 无论如何我可以为simpleXML设置编码吗?
OR无论如何我可以使用utf-8 ??
将xml文件更改为编码我只是尝试使用str_replace('euc-kr','utf-8',$ data)来更改单词,但这似乎并没有改变原始文件类型。因为它会导致像
这样的错误Input is not proper UTF-8, indicate encoding ! Bytes: 0xB0 0xB3 0xC6 0xF7
如何解决此问题?顺便说一下,我没有权限更改xml文件的内容
答案 0 :(得分:1)
假设你想要获得相同的字符集,我会使用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);
...
答案 1 :(得分:0)
我刚刚找到了解决方案。
$data = str_replace('euc-kr','utf-8',$data);
$data = iconv('euc-kr', 'utf-8', $data);
以上代码解决了这个问题。