mysql中数据库乱码

想必不少人使用mysql数据库时发现查询数据时出现数据库乱码问题,出现乱码自己又无法解决。

一. 导入数据库

通常避免数据库乱码问题采用导入数据库到MYSQL时用路径文件导入。

source E:user\abc.sql

abc.sql文件中大多数是utf8编码,与mysql编码环境一致。一般采用此命令导入数据库即可避免数据库乱码。
当然,若是自己的mysql使用gbk编码,使用命令导入后用set names gbk即可。

二.添加数据乱码

insert into table() values ();
ERROR 1366(22007): Incorrect string value: '\xB3\xA4\xB3\xC7' for column 'name' at row 1

使用此命令结果无法正常的插入数据。什么因素导致的该问题呢?
1.我们可以先查一下出现乱码表的字符集

  SHOW FULL COLUMNS  FROM   sys_tour;

2.能够正确导入的表的字符集呢?

  SHOW FULL COLUMNS  FROM   sys_logs;

3.发现插入数据乱码问题
mysql中utf8字符MaxLen=3,但是某些unicode字符转成utf8编码之后有4个字节,需要更改字符集,才能插入.

alter table sys_tour convert to character set utf8;

4.再次查询乱码表的字符集

  SHOW FULL COLUMNS  FROM   sys_tour;

5.使用插入数据信息命令插入数据


上述操作可以正确解决乱码问题,数据库可正常使用。由于此命令只能更改单个表的字符集。若是表较少可使用此命令进行修改。大量表格使用此命令较为繁琐。

你可能感兴趣的:(mysql中数据库乱码)