tomcat版本导致的乱码问题

  • Post author:
  • Post category:其他


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

  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解码,否则也会出现乱码问题



版权声明:本文为chai_ge_ge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。