中文乱码总结之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"/>
go big or go home -- facebook