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

本文详细解析了在配置Tomcat的server.xml文件后遇到的启动错误:com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException。通过分析发现,错误原因是文件编码不匹配,原本应为UTF-8的文件被记事本以ANSI编码保存。文章提供了具体的解决步骤,包括如何正确保存XML文件以避免此类问题。

转自(xinghuo0007):https://blog.youkuaiyun.com/xinghuo0007/article/details/53066791

***********************************************************************************************


今天在配置tomcat的server.xml 文件完后,启动tomcat后报错:

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

分析: 因为修改server.xml的时候是使用系统自带的记事本打开的,修改完成后,直接ctrl+s保存的。而记事本默认的编码方式是ANSI的,但是我们server.xml的文件头声明为UTF-8,所以我想应该是保存的时候,编码方式乱了,于是就修改了一下

文件头声明:

<?xml version='1.0' encoding='utf-8'?>

解决: 使用记事本打开server.xml文件—-点击文件—另存为—修改编码方式为UTF-8 —覆盖保存

这里写图片描述

重新启动Tomcat—–问题解决 OK !

***********************************************************************************************
转自(
xinghuo0007):https://blog.youkuaiyun.com/xinghuo0007/article/details/53066791

### 回答1: 这是一个错误信息,意思是“com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节UTF-8 序列字节 1 无效”。这个错误通常是由于输入的数据不符合 UTF-8 编码规范导致的。 ### 回答2: com.sun.org.apache.xerces.internal.impl.io.malformedbytesequenceexception这个错误信息是Java中XML解析器Xerces报出的异常,提示在解析XML时发生了不合法的字节序列。具体地说,这个异常表示一个包含无效字节序列UTF-8编码字节数组(byte array)被尝试转换为字符串(String)时出错。 在UTF-8编码中,一个字符可能由1~4个字节组成,而字节的第一个比特位用于指示该字节字节数。如果第一个比特位不是0,那么这说明该字节不是一个字符的开始字节,也就是无效字节序列。异常信息中指出,错误的字节序列包含一个字节,也就是说,在该字节之后没有接着足够的字节来表示一个合法的字符。 这个异常通常是由于不正确的字符编码设置或者存在非法字符导致的。解决这个异常的方法包括: 1.检查XML文档是否使用了正确的编码方式,例如UTF-8UTF-16等。 2.检查XML文档是否存在不可打印的字符(如控制字符或删除字符等)。 3.在处理XML文档之前,可以使用Java的CharsetDecoder类对字节序列进行解码,或者使用String构造方法指定字符集(Charset)来避免这个异常。 4.如果还是无法解决问题,可以尝试使用其他的XML解析器,例如JDOM、DOM4J等,以找出问题的具体原因。 ### 回答3: 这个错误信息指的是在解析 utf-8 编码的文本时,发现其中包含的一个 1 字节utf-8 序列的第一个字节无效的。在 utf-8 编码中,一个字符可能由多个字节组成,而且每个字节的第一个位都是 1,其他位则表示该字符的二进制编码。因此如果一个 utf-8 序列的第一个字节不符合该规则,则会被判定为无效的。 这种错误一般是由于文本本身的编码格式有误或者被不正确地转换了编码格式,导致其中包含了无效utf-8 序列。解决这个问题的方法通常有三个: 1. 检查文本编码格式:首先需要确保文本的编码格式正确,如果不正确则需要将其转换为正确的编码格式。查看文本的编码格式最简单的方法是打开文本文件,在其中运行一个文本编辑器,然后在查看菜单中查找编码格式选项。 2. 检查文本内容:如果文本的编码格式正确,则需要检查其中是否包含无效utf-8 序列。可以使用一些专门的工具进行检查,例如 UnicodeChecker 等。 3. 给代码增加异常处理:另外,对于代码中可能出现的这种异常情况,也可以增加异常处理代码,当程序在解析 utf-8 编码时遇到无效序列时,会抛出该异常,程序可以捕获该异常并进行相应的处理,比如输出错误信息或者进行其他的操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值