PHP - 用重音符号解析 xml

标签 php xml-parsing non-ascii-characters

我正在尝试解析包含重音符号的 xml 文件,但收到此错误“字符串无法解析为 XML”。 不幸的是,我无法处理 xml 文件,因为它是从外部源下载的,所以我想知道是否有任何简单的方法来修复它。

这是我的代码:

<?php
$requestAddress = "test.xml";

// Gets data
$xml_str = file_get_contents($requestAddress,0);

// Parses XML
$xml = new SimplexmlElement($xml_str);
?>

我环顾四周,但看不到任何解决问题的方法,或者至少我不明白它们! :-)

最佳答案

我的猜测是 file_get_contents() 没有考虑文件的编码。您的重音符号可能会被视为无效字符并破坏 XML 结构。

使用mb_detect_encoding()检测编码。

使用utf8_encode()将您的字符转换为 UTF-8。

关于PHP - 用重音符号解析 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407948/

相关文章:

php - PHP有什么更好的方法来编写if +三元函数?

php - 减去两个变量并将结果添加到 mysql 数据库

php - 重新加载页面时重新填充表单的最简单方法是什么?

xml-parsing - bison/flex 中的简单 XML 解析器

python - openshift 上的 Django、python 非 ascii 字符

PHP删除结构内数组中的重复结果

javascript - 如何使用 $.parseXML 解析包含客户端属性的 xml 字符串?

java - 在 Java 中使用 XML 模式修复 XML

xml - 如何在 US7ASCII Oracle 数据库的 UTF8 xml 文件中写入非 ascii 字符

php - 正则表达式 - PCRE (PHP) - 单词边界 (\b) 和重音字符