这些东西不难,但是如果满处找资料也挺浪费时间。为了防止下次碰到类似问题又忘了怎么做,并且方便别人,特记录在此。
1.所有的jsp页面的第一行都加上这句<%@ page contentType="text/html; charset=UTF-8"%>,目地是使jsp页面支持多种语言。
2.在web.xml最上面加上如下代码:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
.............
这是在配制一个过滤器,目的是使所有的用户请求数据的编码格式统一成"UTF-8"格式。以上用的是spring提供的过滤器,也可完全以自己写,可参考org.springframework.web.filter.CharacterEncodingFilter.java源代码。
3.用mysql server instance configuration wizard把mysql的字符集设置成utf8.在设置字符集的那一步,注意选择选择manual selected default character set/collation单选按钮,否则还是默认的lartin1字符集。
4.创建数据库。
5.把spring的applicationContext.xml配制文件中的dataSource项中的url写成这个样子:
<property name="url">
<value>jdbc:mysql://localhost:3306/bbscs??useUnicode=true&characterEncoding=utf-8</value>
</property>。
这样,页面上的汉字和数据库中的汉字就都不是乱码了。