情景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乱码情景
原文地址:https://www.cnblogs.com/XiDaPuBen/p/9177078.html