中文乱码问题(页面乱码,eclipse乱码,请求响应乱码)

1、首先在开发工具eclipse中设置工作空间和文件编码格式,详情参见   http://www.cnblogs.com/lixiang1993/p/7345161.html

2、在eclipse的安装根目录下,打开eclipse.ini文件,在文件最后一行添加 “ -Dfile.encoding=utf-8 ” ,这样在eclipse中创建的文件就是以utf-8编码保存。

3、请求乱码问题

  (1)解决get请求乱码问题:在tomcat根目录下,进入conf文件夹,打开server.xml文件,搜索Connector,加入属性URIEncoding,属性值为UTF-8,如图,

  注:文件中有多个Connector,注意选择。

  

  (2)解决post请求乱码的问题

    ①在接收参数前,对其编码,

    request.setCharacterEncoding("utf-8");

    ②ssm框架中,加入post乱码过滤器

<!-- post乱码过虑器 -->
  <filter>
    <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

4、响应乱码问题

传递参数前,对其编码,

response.setContentType("text/html;charset=utf-8");

或者

response.setHeader("Content-Type","text/html;charset=utf8");
response.setCharacterEncoding("utf-8");

 或者在 web.xml 中配置(在 post 乱码过滤器中在配置一个 init-param

 1 <!-- post乱码过虑器 -->
 2 <filter>
 3     <filter-name>CharacterEncodingFilter</filter-name>
 4     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 5     <!-- 处理请求乱码 -->
 6     <init-param>
 7         <param-name>encoding</param-name>
 8         <param-value>utf-8</param-value>
 9     </init-param>
10     <!-- 处理响应乱码 -->
11     <init-param>
12         <param-name>forceEncoding</param-name>
13         <param-value>true</param-value>
14     </init-param>
15 </filter>
16 <filter-mapping>
17     <filter-name>CharacterEncodingFilter</filter-name>
18     <url-pattern>/*</url-pattern>
19 </filter-mapping>

 

posted @ 2017-08-11 13:42  bwlu---ed  阅读(1160)  评论(1编辑  收藏  举报