SSM项目,常见乱码解决办法

常见乱码问题解决办法:(这是我遇到过的)
1.解决post请求乱码(全站乱码过滤器)
2.解决get请求乱码(手动)
3.tomcat的编码问题
4.response响应乱码
5.maven项目打包后发布项目乱码

1.
在你项目的WEB-INF下的web.xml文件中添加一个全站乱码过滤器,– Spring框架中有这个过滤器,直接,类似下面 ,引入即可

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    version="2.5" >

  <display-name>maven...省略</display-name>

  <!-- 省略 -->

    <!-- 编码过滤器,以UTF8编码 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- 省略 -->
</web-app>

2.

设置对客户端请求进行重新编码的编码
httpServletRequest.setCharacterEncoding(“UTF-8”);

3.
tomcat默认编码是ISO8859-1
改为utf-8即可
找到你的tomcat目录下的conf目录下的server.xml
用记事本或者其他文本编辑器打开

找到类似下面的代码,

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

加上
URIEncoding=”UTF-8”
即可
添加后如下:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />

4.
reponse响应到前端乱码,设置下编码
下面给出一个例子:

            Map resultMap = new HashMap();
            resultMap.put("content","ERROR");
            resultMap.put("status", -1);
            resultMap.put("msg","------账户不存在,请检查是否绑定支付宝账号!------");
            //指定对服务器响应进行重新编码的编码
            httpServletResponse.setCharacterEncoding("UTF-8");
            //设置响应头                         
            httpServletResponse.setHeader("Content-type", "text/html;charset=UTF-8");       
            httpServletResponse.getWriter().write(JSON.toJSONString(resultMap));
            return;

5.
如果是maven项目,你打包的时候一定要注意pom文件的编码
打开pom文件
在里面设置

列子:
<!-- 此处及以上省略-->  ......
     <url>http://maven.apache.org</url>
    <properties>

    <!-- 主要是设置编译时的编码 -->  

    <!-- 文件拷贝时的编码 -->  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
        <!-- 编译时的编码 -->  
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>  
    <!-- 此处及以下省略-->  ......
    </properties>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值