MalformedByteSequenceException:2字节UTF-8序列的无效字节2
我有一个包含阿拉伯字符的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");
使用上面的代码创建文件后,编码问题就解决了。感谢大家,在这里付出努力。
-
如何修复1字节UTF-8序列的无效字节1
2021-01-31 关注 0 浏览98 1答案
-
UTF-8可以包含零字节吗?
2021-01-30 关注 0 浏览181 1答案
-
如何将UTF-8字节[]转换为字符串?
2021-02-02 关注 0 浏览93 1答案
-
JSON无效的UTF-8中间字节
2021-01-31 关注 0 浏览113 1答案
-
如何检测非法的UTF-8字节序列以将其替换为java inputstream?
2021-01-29 关注 0 浏览113 1答案
-
UTF-8 字节 [] 到字符串
2022-05-26 关注 0 浏览8 1答案
-
'utf-8'编解码器无法解码位置4276中的字节0xa0:无效的起始字节
2021-01-29 关注 0 浏览85 1答案
-
UnicodeDecodeError:'utf-8'编解码器无法解码位置35的字节0x96:无效的起始字节
2021-01-29 关注 0 浏览139 1答案
-
错误UnicodeDecodeError:'utf-8'编解码器无法解码位置0的字节0xff:无效的起始字节
2021-01-29 关注 0 浏览145 1答案
-
pysqlite2:ProgrammingError-您不得使用8位字节串
2021-01-29 关注 0 浏览69 1答案