2014-11-20 42 views
0

我正在使用Word.document xml作爲我的模板來加載數據到它使用java,它工作正常,除了一些法國字符,如é,導致無法打開word文件,當我打開word文件,我得到錯誤:「非法的xml字符,位置:行:3,列:18765」,當我打開文件時,我可以看到「André」這個「é」在這種情況下導致了問題,所以基本上,我需要做一些在將這些法語字符加載到Word.document xml文件之前編碼工作。但是有很多角色。是否有任何簡單的方法在word.document xml標題中添加代碼行來解決此問題,而不是使用循環對所有法語字符逐個進行編碼?如何在Word.document xml文件中編碼法語字符?

+0

你解決了這種情況嗎?我需要從php編碼document.xml並尋找一個簡單的方法:-) – Justme 2016-11-13 05:30:03

回答

0

該文件是否以UTF-8編碼正確保存,並且正確表示該編碼中的字符?嘗試使用notepad ++或其他編輯器將文件作爲原始文本來查看,並提供明確的指示並對其進行控制。

+0

該文件已保存,但由於錯誤無法打開,本例中的「é」已編碼爲「xE9」,其中導致該錯誤,所以我的java代碼需要改變爲:如果遇到é,我需要將其轉換爲「&#232」以打開它並顯示é沒有任何問題。但有很多法文字符可能會導致這個問題,我需要找到一個更好的簡單方法,而不是使用我的java代碼來逐一編碼法語字符。有任何想法嗎? – smt 2014-11-21 14:19:16

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語法。除了您指出的命名實體外,該字符使用兩個連續字節存儲在文件中C3A9

因此,我必須問您如何創建文件?

如果無法修復,您可以通過指定打開的文件正在以Windows拉丁文1或任何結果來讀取來解決現實問題。現在我不知道你的庫是如何工作的,但是你可能必須先用所需的選項打開文件,然後將打開的流傳遞給XML解析器。

如果這是不可能的,您可以先轉碼文件,然後打開更正的文件。
閱讀爲(無論,probaby拉丁語1)和寫入UTF-8相同的字符。 注意事項查看文件的前幾個字節以進行(錯誤的)字節順序標記編碼。這不會轉碼合理,並需要先切斷。