PHP:simplexml_load_file 从 XML 文件中获取奇怪的字符,采用 UTF-8 编码
PHP: simplexml_load_file gets strange characters from an XML file with UTF-8 encoding
simplexml_load_file() 函数不能很好地解析重音字符。该文件是 UTF-8 编码的,xml 标签有 encoding="UTF-8".
我正在导入一个使用 simplexml_load_file() 函数以 UTF-8 编码的 XML 文件。这个文件有一些重音字符,当我执行 print_r() 或 var_dump() 时,重音字符被转换为奇怪的字符。
XML 文件中的第一行是
<?xml version="1.0" encoding="UTF-8"?>
在代码中我是 运行 基础
$xFile = simplexml_load_file($xmlFile)
我正在遍历 SimpleXML 对象并获取带有重音字符的单词
$text = (string)$p->i
现在
var_dump($text);
显示 Ge├»rriteerd
而不是 Geïrriteerd
我试过 get_file_contents() 然后 simplexml_load_string() 和
我也尝试用 DOMDocument 加载 XML 文件,但显示的是相同的 'wild' 个字符。
关于我还能做什么的任何想法?
注意:我正在开发 PHP5.4,这是 PROD 版本,我无法更改它。
问题是 windows 控制台默认编码。
我已经通过 运行 chcp 65001
.
将编码更改为 UTF-8
@Phil 的评论很有帮助。
simplexml_load_file() 函数不能很好地解析重音字符。该文件是 UTF-8 编码的,xml 标签有 encoding="UTF-8".
我正在导入一个使用 simplexml_load_file() 函数以 UTF-8 编码的 XML 文件。这个文件有一些重音字符,当我执行 print_r() 或 var_dump() 时,重音字符被转换为奇怪的字符。
XML 文件中的第一行是
<?xml version="1.0" encoding="UTF-8"?>
在代码中我是 运行 基础
$xFile = simplexml_load_file($xmlFile)
我正在遍历 SimpleXML 对象并获取带有重音字符的单词
$text = (string)$p->i
现在
var_dump($text);
显示 Ge├»rriteerd
而不是 Geïrriteerd
我试过 get_file_contents() 然后 simplexml_load_string() 和 我也尝试用 DOMDocument 加载 XML 文件,但显示的是相同的 'wild' 个字符。
关于我还能做什么的任何想法?
注意:我正在开发 PHP5.4,这是 PROD 版本,我无法更改它。
问题是 windows 控制台默认编码。
我已经通过 运行 chcp 65001
.
@Phil 的评论很有帮助。