Java Web开发(JSP、Servlet)乱码的一揽子解决方案

来源:互联网 发布:mac如何查找安装路径 编辑:程序博客网 时间:2024/05/20 04:47

千万不要看网上那些杂七杂八的解决乱码的文章,解决乱码最好的方法是(没有之一):在所有地方统一采用UTF-8编码。

这其中包括:

1 - 工程

如果使用的是Eclipse,那么打开Preference,搜索encoding,把所有能改的地方都改成UTF-8,这就确保了源文件的编码。

如果使用的是NetBeans,不用设置,因为NetBeans默认就是UTF-8。


2 - 数据库

例如MySQL,加上启动参数--character-set-server=utf8,这样以后创建的所有数据库都是UTF-8编码,这样就不需要一个一个数据库改了。注意选择MySQL管理工具的时候要选择支持UTF-8的,不过貌似不支持的很少。


3 - Web服务器

例如Tomcat 6,在<Servicename="Catalina">中的<Connector>中加上URIEncoding="utf-8",确保URL的编码格式为UTF-8。


4 - JSP页面

开头要这样写:
<%@ page ... charset=UTF-8"pageEncoding="UTF-8"%>
<html>
<head>
<meta ... charset=UTF-8">


5 - Servlet过滤器

如果项目中使用了Servlet,那么编写一个Servlet过滤器,就能避免在每一个Servlet开头都写那几行同样的语句了:

public class EncodingFilter implements Filter {

public void doFilter (request, response, chain){
    //设置编码格式
   request.setCharacterEncoding("utf-8");
   response.setCharacterEncoding("utf-8");
    //传递到下一个过滤器
   chain.doFilter(request, response);
  }
}
原创粉丝点击