0
我收到有關UTF-8的XML解析例外,這就是消息:SAX XML解析器的缺失行號
Invalid byte 2 of 4-byte UTF-8 sequence.
[Feb 23 13:19:01.937 PST 2015][main][SEVERE][com.accelovation.nlp.util.xml.XMLUtil$XMLDocument:<init>] SAX Exceptoin :org.xml.sax.SAXParseException;
我試圖調試,但它需要修改編譯器選項生成行號屬性。我不能設置一個破發點和Eclipse提醒我:
Unable to install breakpoint in org.apache.exerces.jaxp.DocumentBuiderImpl due to missing line number attributes. Modify compiler options to generate line number attributes.
我應該如何修改編譯器選項生成的數字?在我的Eclipse編譯器選項中,我已經選中了「將行號添加到生成的類文件」。
添加的XML文件是如何解析,其中參數是傳遞給這個函數的File對象的詳細信息:
Document document = null;
DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
if (resolver != null) {
docBuilder.setEntityResolver(resolver);
}
document = docBuilder.parse(file);
我的xml沒有<?xml version =「1.0」encoding =「UTF-8」?>聲明。它曾經工作。現在我試着明確地將這部分添加到xml文件中,並嘗試使用「UTF-8」和ISO-8859-1,並且出現同樣的錯誤。 – ling 2015-02-24 00:13:12
當你將編碼聲明爲ISO-8859-1時,你是否說錯誤「4字節UTF-8序列的無效字節2」?如果是這樣的話,那麼你需要仔細看看這個文件是否包含錯誤,或者它是否來自其他地方。 – 2015-02-24 09:20:05
想想吧,你還沒有告訴我們你是如何解析文件的。也許你正在創建一個Java Reader而不是InputStream,所以字節到字符的解碼是由Java I/O庫完成的,當然這不是看XML聲明。 – 2015-02-24 09:22:51