特殊字符(编码问题)


Special Characters (encoding issue)

我正在解析一个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已经包含了我写的"Show up"状态的单词。并不是我看错了。xml显示Skövde,我读到Skövde。应该是Skövde。现在我需要把它转换成应有的样式

看起来您正在正确地读取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"/>