中文乱码问题解决大全

乱码问题是我们常遇到的问题,现在将乱码问题做一个详细的总结。

首先我们要清楚参数的提交方式分为POST和GET两种方式。

POST乱码解决方式:

1、      原始的方式:

request. setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=utf-8");

      以上同时解决了参数传递时的乱码和参数回显时的乱码。

2、      编码过滤器

<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>/*</url-pattern> 

</filter-mapping> 

 处理GET方式的乱码解决方案:

1、      在Tomcat中设置比编码格式

要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding="UTF-8",这样,GET方式提交的数据才会被正确解码。

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

2、利用Java对格式进行转换

String agentnames = newString(req.getParameter("agentnames").getBytes("ISO-8859-1"),"utf-8");

3、      利用浏览器两次转码,Java中后台解码方式解决GET请求的乱码方式

前端: var str= encodeURI(encodeURI("转电话配置模板.xlsx")); 

后端     String file_name=java.net.URLDecoder.decode(str,"UTF-8");


猜你喜欢

转载自blog.csdn.net/weixin_42324471/article/details/80473345