SSM项目,常见乱码解决办法
来源:互联网 发布:用友数据库重装 编辑:程序博客网 时间:2024/06/05 22:57
常见乱码问题解决办法:(这是我遇到过的)
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>
阅读全文