2013-11-25 36 views
2

我使用Hadoop解析XML,並從here得到了代碼。消息:hadoop中1字節UTF-8序列的無效字節1

但我發現了以下錯誤:

FINISH_TIME="1385387129970" HOSTNAME="DEV140" ERROR="java.io.IOException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[18,3] Message: Invalid byte 1 of 1-byte UTF-8 sequence.

但我的XML編碼使用UTF-8只。那我該如何處理呢?

回答

1

懷疑這就是問題所在 - 它至少一個問題:

XMLStreamReader reader = 
    XMLInputFactory.newInstance().createXMLStreamReader(new 
     ByteArrayInputStream(document.getBytes())); 

調用到getBytes將使用平臺默認的編碼,而不是UTF-8。

可以指定"utf-8"的編碼名稱 - 但它會更簡單,以創建一個StringReader

XMLStreamReader reader = XMLInputFactory.newInstance() 
    .createXMLStreamReader(new StringReader(document)); 

當然,這可能不是唯一的錯誤,但它至少東西看。

+0

@Backtrack我們不讓Jon Skeet知道。他是對的。如果您的程序在您嘗試之後不起作用,那麼您的計算機中存在一個錯誤。 – Maroun

+0

謝謝Mr.Jon Skeet ...真的你救了我的命...謝謝你 – Backtrack

+0

@MarounMaroun - 諷刺我把這個評論。我生氣 。但是非常感謝 – Backtrack

相關問題