我使用Word.document xml作为我的模板使用java加载数据,它工作正常除了一些法语字符,如é导致word文件无法打开,当我打开word文件,我得到了错误:“非法的xml字符,位置:第3行,列:18765”,当我打开文件时,我可以看到“André”这个词在这种情况下“é”引起了问题,所以基本上我需要做在将这些法语字符加载到Word.document xml文件之前进行一些编码工作。但是有很多人物。是否有任何简单的方法在word.document xml标题上添加代码行来解决此问题,而不是使用for循环来逐个编码所有法语字符?
答案 0 :(得分:1)
我想建议程序BabelMap来查看字符。它报道:
Character Properties for U+00E9
Character Name = LATIN SMALL LETTER E WITH ACUTE
Encoding
UTF-8 = C3, A9
UTF-16 = 00E9
UTF-32 = 000000E9
裸E9字节表示您的文件是使用Latin-1保存的,这不是XML文件应该存储的方式。解析器会对其进行扼流,因为它不是有效的UTF-8语法。除了您指出的命名实体外,该字符还使用两个连续的字节存储在文件中C3
A9
所以我不得不问你如何创建文件?
如果无法修复,您可以通过指定正在 Windows Latin 1 中读取的打开文件或其结果来解决现实问题。现在我不知道您的库是如何工作的,但您可能必须首先使用所需的选项打开文件,然后将打开的流传递给XML解析器。
如果不可能,您可以先对文件进行转码,然后再打开更正的文件 读为(无论如何,probaby Latin 1)并将相同的字符写为UTF-8。 警告查看文件的前几个字节是否有(错误的)字节顺序标记编码。这不会明智地转码,需要先切断。
答案 1 :(得分:0)
文件是否以UTF-8编码正确保存,并且有问题的char在该编码中正确表示?尝试使用notepad ++或其他编辑器将文件视为原始文本,该编辑器提供明确的指示和控制。