2010-03-10 91 views

回答

5

要么解析器设置为UTF-8,即使文件被其他编码或文件被声明为使用UTF-8,但它确实没有。

18

最常见的是由于(Latin-x,与Latin-1类似),但解析器认为它获得了UTF-8。拉丁文-1字符的某些序列(带有重音或变音符号的两个连续字符)形成的东西无效,如UTF-8,特别是基于第一个b yte,第二个字节有意想不到的高位。当某些处理使用Latin-1的转储出XML

这可容易地发生,但无论哪种忘记输出XML声明(在这种情况下XML解析器必须默认为UTF-8,按照XML规格),或权利要求它的UTF-8甚至当它不是。

+0

关于如何解决这个问题的任何建议?在使用第三方库XMLTask定义一个ant任务时遇到了这个问题。 – AgentKnopf 2012-03-27 15:55:23

+0

那很困难;否则通常要做的是为特定编码显式创建一个InputStreamReader,然后将其提供给XML解析器。但不知道如何处理Ant ......除了修复XML文件本身,如果可能的话。 – StaxMan 2012-03-27 17:52:58

+0

我想出了这个问题 - 在我的一个xml中,我有一个变音(ä,ö,ü),当我将xml文件转换为不同格式时,它会以某种方式搞砸了。一旦我删除了变音符,它就解决了。 – AgentKnopf 2012-03-27 18:10:59

2

您可以尝试将String.getBytes()使用的默认字符编码更改为utf-8。使用VM选项-Dfile.encoding = utf-8。

2

我有同样的问题。我的问题是我创建了一个新的XML文件与jdom和FileWriter(xmlFile)。 FileWriter无法创建UTF-8文件。 而是使用FileOutputStream(xmlFile)解决了它。

1

对于那些仍然有这样的错误。

因为UTF-8被用来检查你的XML文档的任何拉丁字母左右: 我有同样的问题,究其原因,我有这个:

<n:name>Åke Jógvan Øyvind</n:name> 

希望这有助于

0

当我试图将我的.xml文件导入到我的java工具中时,我也遇到了同样的问题。我找到了一个很好的解决方案: 1.用Notepad ++打开.xml文件,然后将.xml文件保存为.rtf文件。然后在写字板应用程序中打开此文件。 2.将.rtf文件保存为.txt文件,然后用记事本打开它,并将其另存为.xml文件。在记事本中保存时,在弹出窗口的末尾附近,确保选择“编码:UTF-8”选项。 它为我的工作,希望它也对你有用。

相关问题