2010-04-22 73 views
0

使用UTF-8编码解析XML文件时出现无效令牌错误。使用UTF-8编码解析XML文件时出现无效令牌错误

当遇到扩展ASCII字符'â{“â”,“â”}时出现此错误。

当我将编码从UTF-8更改为ISO-8859-1时,解析成功。但我的应用程序应该支持UTF-8,ASCII和扩展ASCII字符。我应该怎么做?

欢迎任何想法。

在此先感谢您的时间和解决方案。

+1

使用什么? 。净? Java的? PHP?巫毒魔法? – skaffman 2010-04-22 07:44:46

+0

我使用的是C语言 – Niranjan 2010-04-22 08:05:35

回答

1

通过设置XML声明的编码属性来告诉解析器拉丁文文件是UTF-8将导致类似于您报告的错误。

如果''字符(U + 00E2)出现在UTF-8编码文件中,那么该字符将在该文件中以两字节序列编码。因此,如果您在更改编码时未更改文件中的字节,则不会更改文件的编码,只会告诉解析器非UTF-8文件为UTF-8。

+0

谢谢皮特的回复。 我能做些什么来使XML文件具有通用性,以便它不会为UTF-8和扩展ASCII字符引发任何错误? – Niranjan 2010-04-22 08:15:41

+2

不能,使用非默认UTF-8(或具有BOM的UTF-16)**的编码的XML文件必须**指定其自己的编码;除非不能在这种情况下猜测别的什么“模式,否则不会猜测出UTF-8。您需要对任何负责生成具有非UTF-8字节序列的“XML”文件负责,并且未指定“<?xml encoding?>”的人,因为他们制作的是没有办法有效。 – bobince 2010-04-22 09:00:36

+0

谢谢bobince提供的信息。 – Niranjan 2010-04-22 09:16:21

相关问题