tomcat版本导致的乱码问题

大多数的乱码文章主要就集中在两方面

 

  1. tomcat要在server.xml connector设置URIENCODING=utf-8
  2. 就是修改自己的代码先解码成什么ISO-8859-1在编码成UTF-8

 

但是却都没有注意到tomcat版本导致的乱码解决方式也是不一样的,我在项目中遇到的bug,写下来为了让自己以后不再走相同的坑

首先tomcat我是拉取的镜像,保证镜像的干净,我不会再server.xml修改

当时我们线上用的是tomcat8,当时代码定义了两个工具类

public static String getURLParameter(String value)
  {
    if (value == null)
      return null;
    try
    {
      return new String(value.trim().getBytes("ISO-8859-1"), "utf-8");
    }
    catch (UnsupportedEncodingException e) {
      e.printStackTrace(); }
    return null;
  }

  public static String getURLParameter2(String value)
  {
    return value;
  }

代码里面写要不要就是getURLParameter要不就是getURLParameter2,感觉就像是在试哪一种情况不会出现乱码,而没有从根本上解决乱码问题

tomcat8其实自己有进行编码的能力,他会按照UTF-8进行传输中文,如果你用ISO-8859-1进行解码然后在用UTF-8编码就肯定会 出现乱码

相反tomcat7没有自己进行编码的能力,你用ISO-9959-1进行解码然后再用UTF-8进行编码并不会出现乱码的问题

尽量不要想着改tomcat内的配置文件,我基本都是用docker拉取镜像,如果老是修改镜像里面的文件得有多烦人,尽量保证镜像的整洁,拉取就可以用

注意:如果你用text文本进行传输中文,并且会有html书签,这样要注意不要给它进行ISO-8859-1解码,否则也会出现乱码问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值