消息:hadoop 中 1 字节 UTF-8 序列的字节 1 无效

Posted

技术标签:

【中文标题】消息:hadoop 中 1 字节 UTF-8 序列的字节 1 无效【英文标题】:Message: Invalid byte 1 of 1-byte UTF-8 sequence in hadoop 【发布时间】:2013-12-10 06:51:15 【问题描述】:

我正在使用 Hadoop 解析 XML,我从 here 获得代码。

但我收到以下错误:

FINISH_TIME="1385387129970" HOSTNAME="DEV140" 错误=“java.io.IOException:javax.xml.stream.XMLStreamException: ParseError at [row,col]:[18,3] 消息:1 字节 UTF-8 的字节 1 无效 顺序。

但我的 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));

当然,这可能不是唯一的错误,但至少值得一看。

【讨论】:

@Backtrack 我们不会让 Jon Skeet 知道。他是对的。如果您的程序在您尝试后无法运行,则说明您的计算机存在错误。 谢谢乔恩·斯基特先生……你真的救了我的命……非常感谢 @MarounMaroun - 我讽刺地发表了该评论。我生气 。不过非常感谢

以上是关于消息:hadoop 中 1 字节 UTF-8 序列的字节 1 无效的主要内容,如果未能解决你的问题,请参考以下文章

Rails 预编译错误(无效的 UTF-8 字节序列)

heroku 运行 rake 资产:预编译中止,因为文件具有无效的 UTF-8 字节序列

如何修复 1 字节 UTF-8 序列的无效字节 1

1字节的UTF-8序列的字节1无效

1 字节的 UTF-8 序列的字节 1 无效。

大数据之Hadoop(MapReduce):Hadoop序列化