统一用一种编码格式,比如gb2312。 要点如下: 1. 将mysql的默认字符集改为gb2312
my.ini文件中的default-character-set=gb2312;
2. jsp文件character也要设置为gb2312
<%@page contentType="text/html;charset=gb2312"%>
3. 在进行数据保存之前进行gb2312到iso8859-1编码的转换
例如在vo包中: public void setMsg(String msg){ byte temp []; try { temp = msg.getBytes("iso-8859-1"); this.msg = new String(temp); }catch(Exception e){ System.out.println(e); } }
上面这种方式如果不管用的话可以试试下面这种
String queryString = new String(req.getParameter("queryString").getBytes("iso-8859-1"), "gb2312");
4. 配置文件
例如:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="url"> <!--<value>jdbc:mysql://localhost/myNews</value>--> <value>jdbc:mysql://localhost/myNews?useunicode=true&characterencoding=gb2312</value> </bean>
或如下例:
applicationContext.xml中的数据库连接必须设置为
<property>jdbc:mysql://localhost/dbname?useUnicode=true&characterEncoding=gb2312</property>
不应该是 jdbc:mysql://localhost/dbname?useUnicode=true&characterEncoding=gb2312