| 回复答案 |
共22条 |
| |
哎哟, 肯定是你安装数据库的时候,没有选择可以支持中文的字符集编码啦。。。UTF-8,GBK,GB-2312都是可以滴。 |
| 回答者:107001211@qq.com - 头衔:开发爱好者 2008-11-5 12:20:31 |
|
| |
需要在hibernate的配置文件中添加一个属性,(这里使用了spring的IOC容器来注入) <property name="hibernateProperties"> <props> <prop key="hibernate.query.factory_class"> ${hibernate.query.factory_class}<!--添加这个属性就可以了--> </prop> ........................ </property> org.hibernate.hql.classic.ClassicQueryTranslatorFactory 原因时hibernate在把hql转换成sql语句的时候,出现了乱码(如果有中文的话),按以上的配置的话,就没有什么问题了。还有一个方法就是,使用预编译的hql,然后动态绑定参数。不过这个方法是针对这一个函数本省而言的,如果你是使用Hibernate3而很多查询涉及中文的话,最好使用配置文件的方式,简单。 |
| 回答者:luyougong@sohu.com - 头衔:开发爱好者 2008-7-25 10:37:25 |
|
| |
第1.myqsql问题:你改一下my.ini 两个default-character-set gbk或gb2312. 第2.你写一个过滤器.解决乱码. 第3.建表时加上这句ENGINE = INNODB DEFAULT CHARACTER SET GBK;->设置引擎为innodb ,默认字符集为GBK 有了这三项保证没问题。 CREATE TABLE [TABLE] ( ID INT(11) AUTO_INCREMENT, 自动增长列 [DATETIME] TIMESTAMP 时间类型默认值 PRIMARY KEY(ID) 主键 )ENGINE = INNODB DEFAULT CHARACTER SET GBK;->设置引擎为innodb ,默认字符集为GBK |
| 回答者:you.bird@Hotmail.com - 头衔:开发爱好者 2008-6-11 21:18:39 |
|
| |
采用Filter过滤器就可以解决,你可以去看看李教师的过滤器教程嘛,过滤中文乱吗 |
| 回答者:gyjmail@qq.com - 头衔:开发爱好者 2008-2-24 19:48:31 |
|
| |
应该是mysql的问题. 首先你要确定你安装mysql的时候你的mysql是否支持中文字符.安装的时候设置成UTF-8,如果你忘了设置.在mysql的安装目录里面的my.ini文件,打开并修改它.有两处需要修改.属性都是default-character-set,你把值设置成UTF-8就行了.这样你的mysql支持中文字符集了. 然后,你建库的时候要把数据库的字符集设置成UTF-8的.你刚才那两处改了以后建库默认的就是UTF-8的了.数据库的字符集改好了,你建表的时候也要设置成UTF-8的.表建好了,你的字段也是设置成UTF-8的. 现在你的mysql没问题了,剩下的就是代码问题了. 你如果是web开发的话.首先建立一个过滤器,里面的request和response的字符集全部设置成UTF-8的.然后你的JSP页面也设置成UTF-8的. 现在差不多了,如果你插入的中文还是?的话,那可能就是楼主你RP问题了. |
| 回答者:dmewy213@gmail.com - 头衔:开发爱好者 2008-1-29 22:36:26 |
|
| |
Hibernate有这方面的问题,但我用的就没问题,最大可能是你的Mysql问题。修改my.ini文件。有两个字符集设置的地方,设置统一的就可以了。 |
| 回答者:wf1337@gmail.com - 头衔:开发爱好者 2007-12-3 11:35:31 |
|
| |
乱码主要是字符集没有统一设置,你将MySQL数据库的字符集设置为utf-8,用过滤器将所有请求设置为utf-8,Jsp页面设置为utf-8,就没有乱码问题了. |
| 回答者:wtg2003080310@163.com - 头衔:开发爱好者 2007-10-15 12:09:52 |
|
| |
主要是这里: jdbc:mysql://127.0.0.1:3306/bbs?useUnicode=true&characterEncoding=UTF-8 你试试,我连接数据地址就是这么写的,可以解决乱码问题。 |
| 回答者:zzhhaaoojjuunn55@163.com - 头衔:开发爱好者 2007-10-2 15:41:52 |
|
| |
第1.myqsql问题:你改一下my.ini 两个default-character-set gbk或gb2312. 第2.你写一个过滤器.解决乱码. |
| 回答者:xushisongbaobao@163.com - 头衔:开发爱好者 2007-8-14 18:37:03 |
|
| |
应该是mysql的问题,在mysql数据库中默认的编码是ISO8859-1,在连接数据库的时候,应该把它转成gb2312 |
| 回答者:loyoveui@126.com - 头衔:开发爱好者 2007-8-3 17:29:23 |
|
| |
先检查存入数据库之前是否正常, 在就是HQL语句中不要有可能是中文的变量以"+n+"的形式的变量, 要用Query的set方法设置值。 再就有可能是数据库的字符集的问题了 |
| 回答者:fanhaofan@163.com - 头衔:开发爱好者 2007-7-18 21:19:59 |
|
| |
你可以参考下这里: <a href="http://blog.csdn.net/Morecans/archive/2007/07/15/1691860.aspx">java 中文乱码终极解决方案(斩草除根式消灭中文乱码恶魔)</a> http://blog.csdn.net/Morecans/archive/2007/07/15/1691860.aspx |
| 回答者:leo.zheng1@163.com - 头衔:开发爱好者 2007-7-15 22:44:30 |
|
| |
如果安装MySql的时候没有设置默认字符集,mysql默认是拉丁文.就会出现乱码。解决办法: 打开配置文件,如 一般在c:\windows\my.ini(如果是mysql5的话可能在安装目录下),在里边找到类似(说类似是因为时间长忘记了,呵呵!) default-character-set=gbk(mysql默认是latin1)这样的语句,把他们全设置成gbk,保存,然后重启 mysql server 。 注意 gbk 要小写,不然 mysql可能启动不了。 如果页面提取出现乱码,设置characterEncoding就行了。
|
| 回答者:ximing1107@163.com - 头衔:开发爱好者 2007-6-27 18:21:35 |
|
| |
进入bin目录找到一个MySQLInstanceConfig.exe文件运行。重新设置以下。注意最后一个字符集选择。选择自定义gb2312就可以了。中文就不会出现问题,这样设置比较安全方便,以后就不用在重新设置了 |
| 回答者:dalianxiaolaohu@sina.com - 头衔:开发爱好者 2007-6-21 20:03:53 |
|
| |
javachinese@126.com 你是谁啊,你给的答案是我在MLDN论坛上给别人做答的答案。。。 Hibernate出现乱码,还有可能就是数据库的原因,字符集应该一致,看看你的MYSQL的字符集~ 祝好运~~~ |
| 回答者:hellojazz@163.com - 头衔:开发爱好者 2007-6-12 13:42:11 |
|
| |
javachinese@126.com 你是谁啊,这是我在MLDN论坛上给别人做答的答案。。。 Hibernate出现乱码,还有可能就是数据库的原因,字符集应该一致,看看你的MYSQL的字符集~ 祝好运~~~ |
| 回答者:hellojazz@163.com - 头衔:开发爱好者 2007-6-12 13:33:54 |
|
| |
回复 一般来说应该是MYSQL的问题,给你贴一个我写的连接MYSQL的类,希望对你有所帮助。
package com.perld.sjz.dbc ;
import java.sql.* ;
public class DataBaseConnection { private final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; private final String DBURL = "jdbc:mysql://localhost/mybbs?user=root&password=hellosjz&useUnicode=true&characterEncoding=gb2312" ; private Connection conn = null ; public DataBaseConnection() { try { Class.forName(DBDRIVER).newInstance() ; this.conn = DriverManager.getConnection(DBURL) ; } catch (Exception e) {
} } public Connection getConnection() { return this.conn ; } public void close() { try { this.conn.close() ; } catch (SQLException e) { } } } |
| 回答者:javachinese@126.com - 头衔:初级程序员 2007-4-16 18:27:04 |
|
|
|
|
| 欢迎使用本系统,智囊团。踊跃回答,赢得积分。 |
|
| 使用有问题请到 帮助 |
|