编码方法统一 (UTF-8)
一.页面显示中文乱码
解决办法:在代码页面上方加入<%@ page pageEncoding="UTF-8"%>
二.传递参数 中文乱码
解决办法: 1.修改/tomcat6.0/conf/server.xml -------------解决链接或get方式传递中文参数
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
2.编写过滤器(Filter类) --------解决POST传递中文参数
假设类名为CharacterEncoding
package com.example
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharacterEncodingFilter implements Filter
{
public void destroy()
{ }
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException
{}
}
然后在项目的web.xml里设置filter映射
<filter>
<filter-name>characterEncoding</filter-name>
<filter-class>com.example.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三.国际化中文乱码
解决办法:1.用JDK的native2ascii工具对资源文件进行转换
代码: <bean:message key="username">
资源文件: ApplicationResources.properties
username=用户名
然后打开cmd命令窗口,进入到资源文件的目录后,输入
native2ascii -encoding gbk ApplicationResources.properties ApplicationResources_zh_CN.properties
值得提一下,如果IDE用的是eclipse,那么有可能保存资源文件后,用写字板打开会发现文件里显示的中文不是简体中文,
如果直接转换,那么不能达到预期效果,所以需要先将资源文件另存为UTF-8格式再进行native2ascii转换。
2.使用ResourceBundle Editor插件
在google搜索就会有一大堆下载的地址
下载后将解压出的文件plugins复制到eclipse文件夹下覆盖就可以.
重启eclipse,对资源文件用ResourceBundle打开,然后new一个资源文件,再打开ApplicationResources.properties
在对应窗口输入中文就OK。保存好就行。