getHibernateTemplate().save(book)
book类中无乱码。
存储后变成乱码。
错误原因:mysql编码错误解决方法:首先把你的页面设置成这个字符集:
Window--Preferences--输入jsp,搜索--点击jsp--在相应的字符集设置上设置成自己想要的编码集。
如果这样还是不行的话,说明你数据库字符集设置有问题,这样设置:
首先把MySQL的服务停掉 在运行窗口输入:net stop mysql
把服务器和客户端的字符集改成自己想用的字符集:GB2312
具体 *** 作为:打开mysql安装目录下的myini.tet;
找到default-character-set,将其改为自己想用的字符集:GB2312或是utf8等……,要注意的是这里有两个default-character-set,用ctrl+f定位在文件最前面输入defaul就会找到,都要改过来;
重启MySQL服务器,在运行窗口输入:net start mysql
最重要的是一点是,到这里我们已经能够解决乱码问题了,可问题是我们依然还会出现乱码问题,这是因为我们现在的表被创建的时候用的是默认的字符集(latin1),所以这时候我们要把表删除,然后重建就可以了
你如果是想从数据库这里就改变编码方式一定要3步:1.数据库连接的url一定要这样写?useUnicode=true&characterEncoding=gb2312&autoReconnect=true
这一点你应该是做对的
2.建立数据表时,要这样写(编码方式可以变,type这个是数据库类型)
CREATE
TABLE
tableName
(
...略
)type=myisam,default
character
set
gb2312
3.在mysql的目录下
比如我的目录是:C:\Program
Files\MySQL\MySQL
Server
5.0
这样的
.
在这个目录下有个文件叫
my.ini
打开这个文件.
一般是在
第57行
default-character-set=gb2312
根据你自己的编码
该写gb2312这个字符串
添加中文乱码不是mysql的问题,hibernate和什么数据库都有这个问题,原因是hibernate在存储中文时,中文在内存中的存在方式的高低位和英文不同。所以,在hibernate中,如果向数据库存放数据中含有中文,那么就要使用把中文一参数的形式放入数据库中,hibernate 文档中有如何使用参数的例子。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)