中文乱码是项目中常见的问题,也是必须要解决的问题。项目出现问题,看了不少的攻略,但是有的时候仍然不行,我的情况是使用get 请求,将参数传递到Controller 中。
下面将我找到的 解决办法。
(1) 在JSP 文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
(2)在HTML中
<meta charset="UTF-8">
这个必须要加的
在上面中,使用get请求,可以对URL 进行编码
var url = encodeURI(url1);
document.location.href = "url"
(3) 在Web 项目中
1) Eclipse 中右键项目 Properties 中,设置UTF-8
2)设置web.xml
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3) 在Controller 中设置
URLDecoder.decode(request.getParameter("test"),"utf-8");
4) 服务器配置(server.xml)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
5)数据库 设置
数据库 中设置UTF-8 ,数据库连接:
jdbc.url=jdbc:mysql://localhost:3306/homeeducation?useUnicode=true&characterEncoding=UTF-8
如果上面设置还是不行的话。那么就使用下面的终极办法,也是最方便的。
直接对接收到的参数进行数据转换
new String(title.getBytes("ISO-8859-1"), "utf-8");