2016-04-25 88 views
0

朋友你好我有一些字符从PHP读取XML文件我用此源代码的一个问题:用PHP的XML字符的问题

$file = 'test.xml'; 
 
$xml_1 = simplexml_load_file($file); 
 

 
echo ($xml_1->content);

其工作正常,但在内容是一个特殊的字符,就像 - 它显示了一个像这样的罕见字符 - 我试图包含在html头utf8字符集中,但它也是一样的

+0

转换就可以显示'test.xml' ? – Naumov

+0

几乎可以肯定,text.xml实际上并不存储在utf-8中,这就是你的问题。 –

+0

是的,我可以完美地看到test.xml问题是只有当它包含特殊字符,如ñó..你可以看到,而不是他们ñ... – htmlpower

回答

0

SimpleXML通过设计发出UTF-8输出。如果应用程序不支持UTF-8,你必须与通常的转换工具(如mb_convert_encoding()),但你必须考虑到这一点:

  • 你需要确信你的应用程序使用的编码。
  • UTF-8可以保存完整的Unicode目录,因此某些字符在您的目标编码中可能没有等效字符。

无论如何,在2016年,除非维护遗留代码,否则没有理由使用除UTF-8之外的其他任何内容。

+0

如果我看到xml文件,我可以看到信息存储在稀有字符中,例如当我把它保存在xml文件中,比如“ni?o”,真正的单词是“niño”,这是一个博客应用程序,当我看到帖子,我可以正确看到,但如果我直接提取信息形式的XML它不工作在博客页面我只能看到UTF-8字符集在它的工作原理我不明白为什么不工作 – htmlpower

+1

Make确保您使用支持UTF-8的编辑器打开XML文件。即使情况如此,您可能需要明确设置编码。 –

+0

我应该在显示前转换数据吗?我认为博客应用程序使用一个额外的过程来将它转换为正确的字符,当它从xml文件中提取之前显示我认为它是不够的,因为我有其他部分的网站直接写在html中的utf8字符集html代码与ñó,我可以看到完美 – htmlpower

0

最后我找到了解决办法,我必须使用utf8_decode PHP函数来它不与您必须扉页放UTF8字符集到足够多的字符转换使用PHP之前

+0

这与我的答案类似,只是细节使其错误。正如[手册](http://php.net/utf8_decode)清楚地解释,这个函数将**从ISO-8859-1 **转换为UTF-8。盲目应用于没有已知编码的字符串意味着增加了另一层错误。 –