如果写入的字符不是UTF8 写入前要转码。。 否则1 写入报错 写不进去 。2 不报错 也写的进去, 但是读出来是 空格 方块 或者问号
原因:
mysql的默认编码方式和代码的编码方式不一致,而引起显示问号。
解决办法:
1、打开Eclipse;
2、打开J2EE项目;
3、可以看到代码的中文编码方式不是utf8(例如是gbk),mysql的默认编码为utf8。由于两者不一致,所以在将字符插入数据库时就出现了问题;
4、所以此时只需要将代码的编码方式改为utf8即可解决。
解决方法:1、打开mysql安装目录下的my.ini文件,找到如下代码:
# CLIENT SECTION
# ----------------------------------------------------------------------
[client]
port=3306
[mysql]
default-character-set=latin1
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/Program Files/MySQL Server 5.0/"
#Path to the database root
datadir="D:/Program Files/MySQL Server 5.0/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1
将default-character-set=latin1修改为:default-character-set=gb2312
2、打开hibernate配置文件,添加如下代码:
<property name="url">
jdbc:mysql://localhost/test?user=rootpassword=123456useUnicode=truecharacterEncoding=gbk
</property>
3、重启mysql,ok!
查找了N多资料,自己总结尝试可以,我的就是怎么解决的,如果你的问题解决了,麻烦说一声哦,祝你好运!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)