编码问题解决整体思路
响应的乱码
- 单独设置
首先确保eclipse的编码格式(Windows-Preference-General-WorkSpace-TextFileEncoding)
-
字符输出流乱码
即【response.getWriter().Write(“输出内容”);】乱码
解决方案
response.setContentType(“text.html;charset=编码格式”); -
字节输出流乱码
即【response.getOutputStream.write(“输出内容”.getBytes);】乱码
解决方案
response.setcharacterEncoding(“编码格式”); -
网络文件传输(文件名)乱码
(个人电脑配置问题)
String filename= new String(“员工信息表.xls”.getBytes(“utf-8”), “ISO8859-1”); -
使用过滤器:进行全局的拦截和设置
-
@RequestMapping中的produces属性=MediaType.APPLICATION_JSON_UTF8_VALUE
推荐使用在整个处理器类上,进行全局设置
请求的乱码
前端传的参数乱码,即【request.getParameter(“键”)】内容乱码
- 单独设置
- get请求
String s= new String(“请求中的参数”.getBytes(“原始编码格式”),需要的编码格式);
-
Post请求
- String s= new String(“请求中的参数”.getBytes(“原始编码格式”),需要的编码格式);
- 或 request.setcharacterEncoding(“编码格式”);
-
全局设置
-
Post请求
web.xml中配置Spring自带的过滤器CharacterEncodingFilter
<filter>
<filter-name>EncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
浏览器乱码
控制台显示是正确的,但浏览器显示有问题