2010-01-21 66 views
0

我從不同的來源閱讀文本,這些文本可以包含來自不同語言/擴展字符的字符,如「?」†®©。然後我應該寫入一個XML文件,我使用java中的PrinterWriter將任何字符串讀取到XML文件中。所以對於ascii大於127的這些類型的擴展字符在XML文件中給出非法字符錯誤,那麼在寫入XML時如何正確編碼它。如何使用java將ASCII擴展字符(其ASCII碼> 127)寫入XML文件?

回答

2

首先,沒有像127碼以上的ASCII碼那樣的東西。ASCII只定義了值最大爲127.「擴展ASCII」是一個含糊的術語,因爲它用於描述許多不同的編碼。現在,對於XML:使用任何想要寫入字符串的XML API,而不用擔心內容(只要它們可以用XML表示; U + 0000到U + 001F範圍內的各種控制字符aren不幸的是,這不能代表)。 不要嘗試從頭開始創建XML - 這就是XML API的用途。確保您的XML文檔使用的編碼能夠處理您需要的字符(UTF-8通常是一個不錯的選擇,並且通常是默認選項),請確保您的Java字符串中包含正確的Unicode數據,並且您應該沒事。

編輯:我實際上並沒有發現該位前:我使用PrinterWriter在java寫一個XML

不要

。請使用XML API。周圍有很多東西,你會有很多擔心。在大多數情況下,我也不建議使用PrintWriter - 在大多數情況下,抑制異常並不是一個好主意。

+0

我的輸出XML文件是WordProcessingML格式,所以你可以建議任何開源XML API嗎? – 2010-01-21 18:02:58

+0

@Sn:只要它是你想創建的正常的XML,它們中的任何一個。您可能會發現JDOM(http://www.jdom.org/)比內置API更易於使用。 – 2010-01-21 18:18:57

1

使用&#value;語法。空格將是