用户生成的XML,交叉兼容编码


user-generated XML, cross compatibility encoding

所以我的应用程序有一个表单,用户在其中输入文本,文本存储在XML文件中的CDATA标记中。我注意到从一些用户的计算机发送的输入可以很好地保存在XML中,但是从其他用户的计算机发送的输入会导致问题。我怀疑这与编码有关。

这是一个用户的输入。

这里是另一个:

当我这样做的时候:

$xml = simplexml_load_file($filename);
echo $xml->body;

两个例子中只有后者有效。有人能解释一下原因吗?

编辑:第一个有'encoding="us-ascii"'因为它产生了大量的错误'UTF-8'

第一个示例的编码被声明为"us-ascii",而它实际上在几个地方包含非ascii字符"。您应该使用UTF-8或过滤掉非ascii字符。