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

今天被这个问题纠结了一上午,终于解决。我觉得要记载一下,很全面的tomcat配置当前字符编码。一个个改了之后,问题立马解决。

修改工作空间默认编码

  1. 1,进入Eclipse,导入一个项目工程,如果项目文件的编码与你的工具编码不一致 将会造成乱码。如:

    Eclipse修改编码格式

  2. 2,如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码。

  3. 修改默认编码

    在菜单导航栏上Window-->Preferences 打开"首选项"对话框,左侧导航树,导航到 General-->Workspace

    Eclipse修改编码格式





  4. 3,Windows 7平台默认为GBK,简体中文操作系统Windows XP、Windows 2000简体中文的缺省编码是GB18030,Linux平台默认为UTF-8

    那么在此工作空间中建立的工程编码是GBK,工程中建立的java文件也是GBK。

    可以看到默认的是GBK编码格式,我们修改为UTF-8编码格式或者是你需要的编码格式  

    点击Apply,点击OK.

    Eclipse修改编码格式






修改文件的编码

  1. 1

    有的时候我们导入项目文件,并没有导入到我们的workspace,只是一个引用,这个时候如果有编码的问题,我们可以修改文件的编码查看.

    在Eclipse项目文件上右键,选择Properties,在Resource选择修改编码格式

    Eclipse修改编码格式
    END



修改某文件类型的编码


  1. 1
    有时候我们需要某种类型的文件,如:*.jsp、*.java等

    导航栏window-->preferences

    打开"首选项"对话框,左侧导航树,导航到 Genera-->Content Types

    Eclipse修改编码格式





  2. 2

    右边找到要修改的文件的类型,我这边以*.java为例

    在下面的Default encoding,输入框中输入UTF-8->Update->OK 

    Eclipse修改编码格式





修改单个文件的编码

  1. 1

    在包资源管理器右键点击文件->属性,改变文本文件编码格式为UTF-8 

    Eclipse修改编码格式



  2. 2

    经过上述步骤,新建java文件即为UTF-8编码,新建项目也是UTF-8编码,在

    Eclipse编译、运行、调试都是没问题的。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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-8、UTF-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 编码时遇到无效序列时,会抛出该异常,程序可以捕获该异常并进行相应的处理,比如输出错误信息或者进行其他的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值