设置四个位置,可以解决百分之八九十的乱码问题。
1>.在eclipse或myeclipse中找到window-->preferences-->general-->workplace,将工程的编码格式改为 UTF-8.
2>.解决get请求参数乱码:
方法1:
将接收到的中文乱码重新编码。
//get请求方式接收到的中文字符串
String name = request.getParameter("userName");
//将中文字符重新编码 默认编码问 ISO-8859-1
String userName = new String(name.getByte("ISO-8859-1"),"utf-8");
方法2:
如果你使用的是Tomcat服务器,那么我们可以在服务器指定配置文件中加入如下代码:
找到Tomcat服务器的安装目录--->conf--->server.xml--->找到有8080标记的地方
如下:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
在此标签中加入代码 URIEncoding='utf-8'
3>.解决post请求参数乱码问题:
可以每次在request解析数据时设置编码格式:
request.setCharacterEncoding("utf-8");
也可以使用编码过滤器来解决,最常用的方法是使用Spring提供的编码过滤器:
在Web.xml中增加如下配置(要注意的是它的位置一定要是第一个执行的过滤器):
<filter>
<filter-name>charsetFilter</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>
该过滤器要做的其实就是强制为所有请求和响应设置编码格式:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
4>.在eclipse或myeclipse中找到window-->preferences-->myeclipse enterprise workbench-- >files and editors-->html将encoding编码格式改为UTF-8.