中文乱码总结之web乱码情景

情景1、当servlet返回js脚本时弹出框显示中文乱码:

解决:在servlet中加上response.setContentType(“text/html;charset=utf-8”);

情景2、上传文件时服务端中文文件名乱码:

原因:网上看到:代码规则以及虚拟机等等都歪果仁发明的通常他们都是采用ISO-8859-1,所以你懂了。需要转码

  new String(multipartFile.getOriginalFilename().getBytes("ISO-8859-1"), "UTF-8");看看文件名是否转换成中文显示,如果是采用下面的方式

解决:使用 request.setCharacterEncoding("UTF-8"); 向客户端浏览器的http header中
情景3、ssh框架中文乱码

解决:

1:你的集成开发环境设置为UTF-8;

2:你的tomcat 的service.xml中设置为UTF-8;

3:你的jsp页面也设置成UTF-8;

情景4、ssm框架解决中文乱码

解决:

SSM框架开发,则可以通过在web.xml中配置字符编码过滤器的方式统一字符编码(只能解决post请求的)

 1 <!-- 配置spring监听 -->
 2   <listener>
 3     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 4   </listener>
 5 
 6 
 7   <!-- 统一字符编码 -->
 8   <filter>
 9     <filter-name>CharacterEncodingFilter</filter-name>
10     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
11     <init-param>
12         <param-name>encoding</param-name>
13         <param-value>utf-8</param-value>
14     </init-param>
15     <init-param>  
16         <param-name>forceEncoding</param-name>  
17         <param-value>true</param-value>  
18     </init-param>  
19   </filter>
20 
21   <filter-mapping>  
22      <filter-name>CharacterEncodingFilter</filter-name>  
23      <url-pattern>/*</url-pattern>  
24    </filter-mapping>  

get请求的请修改tomcat的配置文件中修改为UTF-8

<Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
原文地址:https://www.cnblogs.com/XiDaPuBen/p/9177078.html