字符乱码解决方案

get方式乱码解决方法

字符转字节,然后再转字符

将乱码字符串按照错误的编码方式转换为原始的字节码序列,然后将原始的字节码序列安装正确的编码转化为正确的文字即可。

//这里假设abc是使用ISO8859-1字符集编码的
String abc="张三";

byte[]  bs = abc.getBytes("ISO8859-1");

abc = new String(bs,"UTF-8");

获取请求参数之前设置字符编码

request.setCharacterEncoding("UTF-8");

使用过滤器

底层使用的是上面一种方式去解决问题的。

  <filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>

  <filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*
  

post方式乱码解决方法

在服务器的配置文件server.xml中添加一个属性URIEncoding并设置值为UTF-8。

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" 
	URIEncoding="UTF-8"/>

你可能感兴趣的:(JavaEE)