最近在做 Java WebApp 的过程中总结 Hibernate 与各种数据库的连接与操作的时候中遇到了不少问题,也获得了不少经验,其中,JSP 插入 MySql 中文乱码问题应该是不少 Progammer 都遇到过的,所以我把解决这个问题的一些技巧和注意问题记录下来,以供参考。
首先,要提到的是 MySQL 4.1 对多语言的支持有了很大变化,开始提供对 Unicode 编码的支持,这里我推荐大家使用 UTF-8 编码来加强 Java 项目对多语言的支持。然而,就是这个编码的问题还是让不少人头疼不已,其实,我们所要做的就是让页面显示和数据库的编码统一罢了,一点也不复杂 ...
首先,我在 JSP 页面加上 来强制页面显示 UTF-8 字符。然后,我给 webapp 加入了一个 Filter 来过滤提交过程中出现的乱码字符,具体 Filter 的相关程序以及配置如下:
EncodingFilter.java










































在 web.xml 加入如下配置:
<filter>
<filter-name>encoding</filter-name>
<filter-class>EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
配置好 Filter 后,我们在 Mysql Server 端的配置文件 my.cnf(my.ini)中的 [mysqld] 下加入 default-character-set =utf8 并放到 /etc 目录下,重启 MySql 服务,你也可以用 show variables 命令查看一下刚才的配置时候已经生效。完成以上步骤之后你就可以放心的向 MySql 中插入或抽取数据了,OK :)