我遇到使用simplexm_load_string解析xml字符串的问题。 对于它,我无法弄清楚我在这个脚本出错了。
<?php
header('Content-Type: text/html; charset=utf-8');
$string = <<<XML
<?xml version='1.0' encoding='UTF-8'?>
<document>
<title>ÄÖÜ</title>
</document>
XML;
$xml = simplexml_load_string($string);
print_r($xml);
?>
答案 0 :(得分:1)
对于它,我无法弄清楚我在这个脚本出错的地方。
因为你没有将PHP文件保存为UTF-8,所以你不能在那里使用字符串:
$string = <<<XML
<?xml version='1.0' encoding='UTF-8'?>
<document>
<title>ÄÖÜ</title>
</document>
XML;
以UTF-8编码。将文件保存为UTF-8并且可以正常工作。
如果您不确定,您也可以采用不同的方式:
<?php
header('Content-Type: text/html; charset=utf-8');
$string = <<<XML
<?xml version='1.0' encoding='UTF-8'?>
<document>
<title>\xC3\x84\xC3\x96\xC3\x9C</title>
</document>
XML;
$xml = simplexml_load_string($string);
print_r($xml);
这是通过以PHP的二进制表示法指定扩展窗格中的二进制字节,因此它们不受八位字节部分中不同编码的影响。这将非常强大。
但请考虑保存您的PHP文件UTF-8编码。这通常是网络开发的最佳实践。
答案 1 :(得分:0)
尝试使用:
simplexml_load_string(utf8_encode($string))