常常在使用Navicat或者JDBC插入数据到mysql时,会遇见中文乱码问题,这时怎么解决问题呢?
请看下面的总结:
1、建表时没有指定统一的编码格式导致
错误的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
)
正确的建表方式:
CREATE TABLE database_user(
ID varchar(40) ,
UserID varchar(40)
) ENGINE=InnoDBDEFAULT CHARSET=utf8;
2、安装数据库时没有修改my.cnf文件
进入数据库后查看编码格式:
#mysql -u root -p123456
(1)mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-------------------+
(2)mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如果编码格式正确统一,那么需要修改my.cnf文件
在【mysqld】下面添加:default-character-set=utf8
执行以上操作后再插入数据即可不乱码!