-2

我正在解析一个 xml 文件。XML 以 utf-8 编码。当单词包含特殊字符时,它们会被扭曲。我无法控制 xml 文件,但是我能做些什么来正确显示单词吗?

例子

Shows up as: Skövde
Should Be: Skövde OR Skovde
Shows up as: Kaposvári Rákóczi
Should be: Kaposvári Rákócz  OR Kaspovari Rakocz

我可以做些什么来通过php将第一个转换为第二个?还有很多其他的情况,这些也是我很快发现的。

编辑:我不确定着色问题。他们没有任何意义。编辑 2:xml 已经包含我写的“显示”状态的单词。并不是我读错了。xml 显示 Skövde,我阅读了 Skövde。它真的应该是Skövde。现在我需要把它转换成它应该的样子。

4

1 回答 1

1

您似乎正确地读取了 XML(即您从 XML 文档中获取了 utf-8 字符串),但是您没有正确显示它们。

您在不在 utf-8 中的页面中显示 utf-8 字符串。

您必须在显示它们之前转换字符串:

(假设您的页面编码是iso-8859-1;如果您不知道,请查看浏览器中的页面信息)

mb_convert_encoding($str, "iso-8859-1", "utf-8");

或者将页面的字符集设置为 utf-8:

header('Content-Type: text/html; charset=utf-8');

// or (in html) :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
于 2013-05-23T14:01:09.840 回答