我正在解析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。现在我需要把它转换成应该的样子。
答案 0 :(得分: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"/>