2013-11-25 44 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

相关问题