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 的评论很有帮助。