使用环境:myecplise 10.0 ,操作系统:win2003server,数据库:mysql 免安装版6.0.9
问题:myecplise 10.0中编写java代码向数据库表中字段写中文,在SQL Manager for MySQL中查看数据库中表字段显示为?,在命令窗口下也显示?。
解决问题方案,
一、统一编码,都改成utf8编码:
1、修改my.ini文件,添加如下代码
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
2、重启mysql,执行
mysql> SHOW VARIABLES LIKE 'character%';
mysql> SHOW VARIABLES LIKE 'collation_%';
发现都已经utf8的。
二、数据库连接和命令窗口设置
设置数据库连接时加上?characterEncoding=utf8 ,指定使用utf8编码。
如:jdbc:mysql:///hibernate?characterEncoding=utf8
通过以上三个步骤在SQL Manager for MySQL中查看数据库中表字段显示为正常中文编码,但在命令窗口查看时仍然是乱码。
解决也很简单:
在使用数据库之前,先执行命令 set names gbk; 回车。问题解决,查看中文数据正常显示。