2010-04-22 42 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

相關問題