当前位置: 首页 > 面试题库 >

MalformedByteSequenceException:2字节UTF-8序列的无效字节2

毋宏茂
2023-03-14
问题内容

我有一个包含阿拉伯字符的xml文件。尝试解析文件时,出现异常,MalformedByteSequenceException:2字节UTF-8序列的无效字节2。我使用POI
DOM来解析文档。

日志是

2012-03-19 11:30:00,433 [ERROR] (com.infomindz.remitglobe.bll.remittance.BlackListBean) - Error

com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence.

    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)

    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)

    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)

    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)

    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)

    at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)

    at com.infomindz.remitglobe.bll.remittance.BlackListBean.updateGeneralBlackListDetail(Unknown Source)

    at com.infomindz.remitglobe.bll.remittance.schedulers.BlackListUpdateScheduler.executeInternal(Unknown Source)

    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)

    at org.quartz.core.JobRunShell.run(JobRunShell.java:216)

    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)

该异常仅在Windows Machine中出现,在Linux Machine中不出现。我该如何解决此问题。任何建议都应是可取的。


问题答案:

我已解决问题,方法是使用UTF8格式创建XML文件。

OutputStreamWriter bufferedWriter = new OutputStreamWriter(filePath +
                        System.getProperty("file.separator") + fileName), "UTF8");

使用上面的代码创建文件后,编码问题就解决了。感谢大家,在这里付出努力。



 类似资料:
  • 问题内容: 我正在尝试使用Java方法从数据库中获取以下xml,但出现错误 用于解析xml的代码 数据 错误 我读了一些线程,这是因为xml中有一些特殊字符。如何解决这个问题? 问题答案: 如何解决这个问题? 使用正确的字符编码读取数据。错误消息表示您正在尝试以UTF-8格式读取数据(故意或因为这是未指定的XML文件的默认编码),但实际上它采用的是其他编码,例如ISO-8859-1或Windows

  • 问题内容: 当(杰克逊,在这种情况下)JSON引擎尝试解析一些未使用UTF-8编码的JSON时,会发生此错误。 如何告诉引擎它应该期望与UTF-8不同的东西,例如UTF-16? 错误日志: 问题答案: JSON数据必须编码为UTF-8,UTF-16或UTF-32。JSON解码器可以通过检查字节流的前四个八位字节来确定编码: 听起来好像服务器正在以某种非法编码(ISO-8859-1,Windows-

  • 在Java中,我向JSON对象添加一些属性,并将这些值发送到HTTPS URL(REST API)。服务器抛出一些错误,如“无效的utf-8开始字节0xb0”。下面是我的代码:

  • 我使用jMeter通过post请求向测试服务器发送json。 以下请求总是失败: 响应数据中的错误消息为: 请求根本不发送到服务器。其他请求(例如将类别中的值替换为其他有效类别,如“Delis”)工作完美。 我猜这是一个与“Café”有关的编码问题,但我不知道如何解决它。知道吗?谢谢

  • 问题内容: 我是Python的新手,正在尝试使用以下脚本读取csv文件。 但是,出现错误“ UnicodeDecodeError:’utf-8’编解码器无法解码位置35处的字节0x96:无效的起始字节”,请在此帮助我了解问题,我在脚本中使用编码认为可以解决错误。 问题答案: 发生这种情况是因为您选择了错误的编码。 由于您使用的是Windows计算机,因此只需更换 与 应该解决问题。

  • 问题内容: 我尝试读取并打印以下文件:txt.tsv(https://www.sec.gov/files/dera/data/financial-statement- and-notes-data- sets/2017q3_notes.zip ) 根据SEC,数据集以单一编码提供,如下所示: 制表符分隔值(.txt):utf-8,制表符分隔,\ n终止的行,第一行包含小写的字段名称。 我当前的代码