今天向mysql插入数据数据时,部分生僻汉字变成了问号。如:花荄镇 显示为”花?镇“初步断定为字符编码问题
1、检查程序连接数据库时的编码:
<url>jdbc:mysql://192.168.0.121:3306/checkdb?useUnicode=true&characterEncoding=gb2312</url> 编码为GB2312
将编码改为GBK
2、查看数据库配置文件:
查看数据库的字符编码:
mysql> show variables like ''char%'';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
将MYSQL数据库同一设置成: gbk格式, 命令如下:
mysql>
set character_set_client="gbK";
set character_set_connection="gbk";
set character_set_results="gbk";
set character_set_server="gbk";
3、修改数据库的配置文件:
mysql安装目录下面的my.ini文件 : default-character-set=gbk
character-set-server=gbk
修改完成之后重启MYSQL服务器.
4、修改建表的默认编码
建表最后语句:
PRIMARY KEY (`ck_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
总结以上步骤:
1.设置客户端地连接编码格式. (命令: set names ''gbk'')
2. 修改数据库的配置文件
3. 使用命令统一一下数据库的字符编码.
web乱码:参考http://blog.csdn.net/chenghui0317/article/details/10299103