java learnging

一块探讨JAVA的奥妙吧
posts - 34, comments - 27, trackbacks - 0, articles - 22

MySql中的中文乱码解决方案

Posted on 2005-01-13 14:45 bigseal 阅读(1082) 评论(0)  编辑  收藏

上次测试使用hibernate,遇到了中文的乱码问题,今天在web中使用hibernate又遇到了乱码的问题。但是上次解决后没有把解决方案记录下来,今天重新上网搜索了一把。并将解决方案记录在下面便于以后再遇到时查看用。

Hibernate中配置Mysql数据库如下:

hibernate.dialect net.sf.hibernate.dialect.MySQLDialect

hibernate.connection.driver_class org.gjt.mm.mysql.Driver

#hibernate.connection.driver_class com.mysql.jdbc.Driver

hibernate.connection.url jdbc:mysql://localhost:3306/test

hibernate.connection.username root

hibernate.connection.password password

hibernate.commection.url的值后面加上字符串“?useUnicode=true&characterEncoding=GBK”就可以解决了。

即修改后的url为:

hibernate.connection.url jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK

Hibernate还有一种配置文件是xml格式的,文件名为:hibernate.cfg.xml

xml文件中配置MySql数据库的定义如下:

    <session-factory name="/jndi/ContactsSessionFactory">

       <!-- properties -->

       <property name="hibernate.connection.driver_class">

org.gjt.mm.mysql.Driver

</property>

       <property name="hibernate.connection.url">

jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=GBK

</property>

       <property name="hibernate.connection.username">root</property>

       <property name="hibernate.connection.password">password</property>

       <property name="hibernate.dialect">

net.sf.hibernate.dialect.MySQLDialect

</property>

       <property name="hibernate.connection.pool_size">4</property>

       <property name="hibernate.show_sql">true</property>

       <!-- mapping files -->

       <mapping resource="hello/Message.hbm.xml"/>

    </session-factory>

注意由于在XML文件中&符号是转义符,因此需要对其进行转义。即使用&amp;来代替。

 

        

 

JSP连接MYSQL数据库如果有中文存取的情况会出现乱码,网页上中文显示一堆“?“,
需要做如下改变
1. 连接串:
 String mysqlDriver = "org.gjt.mm.mysql.Driver";                        //数据库驱动,又作"com.mysql.jdbc.Driver"
  String mysqlUrl = "jdbc:mysql://localhost:3306/bbs?useUnicode=true&characterEncoding=gb2312";    //数据库连接字串
  String mysqlUser = "root";                                             //数据库用户名
  String mysqlPsw = "";                                                  //数据库密码
 
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();   //注册驱动
  conn = DriverManager.getConnection(mysqlUrl,mysqlUser,mysqlPsw);  //得到连接

2.请求对象设置:
<% request.setCharacterEncoding("gb2312");%>
将jsp的请求对象的字符集设置为支持中文

 

 

这中方法还没用过,先收藏起来,有空的时候研究一下。


只有注册用户登录后才能发表评论。


网站导航: