我只是目前沒有看到我自己。這應該是標準的:我得到一些帶有一些UTF-8字符的XML,我想解析它們。UTF-8字符在使用GWT解析後被損壞XMLParser
下面是一個例子: <person><name>Nguyển Thị Ngân</name></person>
當我解析此與GWTs XMLParser的並打印出名稱節點值,則字符被損壞:
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><person><name>Nguyển Thị Ngân</name></person>";
Document doc= XMLParser.parse(xml);
NodeList list = doc.getElementsByTagName("name");
for(int i = 0; i < list.getLength(); i++){
System.out.println("XMLParser: " + list.item(i).getFirstChild().getNodeValue());
}
System.out.println("System.out: " + xml);
的輸出是:
XMLParser: Nguyá»n Thá» Ngân
System.out: <?xml version="1.0" encoding="UTF-8"?><person><name>Nguyển Thị Ngân</name></person>
我解釋,它的字符亂七八糟與通過System.out打印無關。
這裏有什麼問題?
如果您刪除了''-decl?你解析一個字符串,所以它已經由字符組成,而不是字節,因此不需要編碼。它可能是一個瀏覽器錯誤。此外,它是否發生在您測試過的所有瀏覽器中,或者只有其中一個? –
你有沒有嘗試用unicode轉義碼替換非拉丁字符?仔細檢查您的開發環境是否將文件保存爲UTF-8。 – chooban
@Thomas Broyer:刪除沒有任何區別。到目前爲止,我只將代碼作爲GWTTestCase運行。我會遵循您的建議,並在生產模式下的不同瀏覽器中進行測試。星期一會這樣做。 –