100%解决xml 文件中文注释 报错 3 字节的 UTF-8 序列的字节 3 无效

最近在做SSM整合项目的时候,总是到最后一步部署Tomcat时控制台报错,而报错的原因却着实令笔者本人头痛。

先看一下报错原因

Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 3 字节的 UTF-8 序列的字节 3 无效。  

    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:687)  

    at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:435)  

    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1753)  

    at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1252)  

    at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:778)  

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1046)  

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2980)  

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)  

    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)  

    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)  

    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)  

    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)  

    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)  

    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)  

    at org.apache.ibatis.parsing.XPathP

着这一幕的时候,只是想着可能IDEA中编码配置有问题,但是经过盘查之后,IDEA中的编码确实没有设置为UTF-8
在这里插入图片描述
但是设置之后还是没有任何效果,依旧报上面的字节码错误。
笔者也是经历了一周的魔鬼时刻,能查到的方法几乎都尝试了一遍,但仍然没有任何改变。
最后笔者更是硬着头皮下载了源代码,看过之后才发现,在底层源码设置编码格式是默认设置的是null值,也就是说在创建项目时,默认编码就是和电脑本身的编码格式一致使用的是GBK,所以才会导致xml文件中添加中文注释报出上述错误!
历经千辛万苦笔者还是列总下来了以下几种解决方案希望能够帮助大家解决问题:

第一种解决方法

直接删除中文注释、简单直接,但是对于像我这样的新手来说,后期读起xml配置文件简直要发疯

第二种解决方法

将所有xml配置文件中的UTF-8修改为GBK即可
但是太过于耗费时间,也不能每次做项目都要修改、显然不现实!
在这里插入图片描述

第三种解决方法

在设置Tomcat的时候,在VM options框中输入

-Dfile.encoding=utf-8

启动项目的时候就可以解决字节码报错的问题
相对于前两种、笔者更推荐第三种方法!
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Gaowumao/article/details/116153147