2011-12-04 81 views
0

嗨,大家经过5个小时的研究,并尝试一切我非常绝望,所以我写在这里。 我有一个来自第三方的XML文件。当我试图用SimpleXMLElement解析它时,它只是说该字符串不是有效的XML格式,而且我也发现这是由于ANSI文件编码XML文件所致。我试图将文件转换为UTF-8 - >它被解析器读取,但我所有的西里尔字符都丢失了,取而代之的是无意义的字符。 然后在记事本++中,我复制了创建一个文件并使用utf8编码的内容,并粘贴了内容 - >它很好,并且被解析器读取。我试图用代码做,但没有结果 - >我得到文件的内容,创建一个文件的第一个字节,UTF-8文件的字节,输出内容,当我打开它 - >无意义的字符,而不是西里尔文。请帮助我,我真的需要将此文件转换为适用于XML解析器的UTF-8,或者您可以告诉我另一种将文件从XML解析为数组的方式。Php xml编码问题

+0

你应该早点考虑一下;)如果你在浏览器中打开xml文件会发生什么情况,你会得到一个解析错误吗? – cambraca

+0

你知道原始文件的编码是什么吗? ISO8859-5? –

+0

它不是在Chrome和IE9中打开。记事本说编码是ANSI,我不知道... –

回答

0
+0

我忘了维度,UTF-8编码然后解码数据丢失...为好导致?????????我试过iconv - >你能更具体一些吗,也许我错过了一些东西。 –

+0

输出工作文件时,请尝试在需要正确输出的字符串上使用utf8_decode()。试试吧,我认为你没有。让我知道它是如何工作的。也给iconv一个镜头,试试iconv('UTF-8','CP-1251',$ string);或试用ISO-8859-5而不是CP-1251 – Valhallen

+0

是的,我尝试过并告诉你它解码为????? ... 错误的字符集,从'UTF-8'转换为'CP-1251 '不允许'。我猜这个xml文件坏了... –

0

你需要找出编码原始XML文件是,那么你可以使用iconv将其转换为UTF8。

+0

我应该怎么做? –

+0

如果浏览器拒绝打开它...我想你可以使用Word打开文件并告诉你编码:http://office.microsoft.com/en-us/outlook-help/choose-text-encoding-当-你打开和保存档案,HA010121249.aspx#BM2 –