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

Posted xidapuben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中文乱码总结之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"/>

 


以上是关于中文乱码总结之web乱码情景的主要内容,如果未能解决你的问题,请参考以下文章

Java Web开发总结 —— request接收表单提交中文参数乱码问题

中文乱码总结

玩转web之ajax---使用表单的serialize()方法中文乱码解决

web请求乱码问题总结

IDEA启动项目之乱码问题

由web程序出现乱码开始挖掘(Bom头字符集与乱码)