MySQL插入中文问题

    大多数新手在使用MySQL的时候,都会遇到这种插入中文乱码问题。

    在执行 insert 语句插入中文就会报类似的错误:

    ERROR 1366 (HY000): Incorrect string value: '\xD8\xD0\xCE\xC4\xD5\xD3' for column

    这是因为MySQL数据库默认配置的编码方式是 latin1,该字符编码是拉丁字符集,并不包括中文字符,所以无法插入中文字符。我们只要修改MySQL的字符集就可以了。对于使用者来说,一般推荐使用 utf8 编码来存储数据。除此之外还有 gbk 编码。但本人不推荐设置 gbk 编码,因为 utf8 是国际通用的字符编码,大多数网页的编码格式都是 utf8。

    本人所安装的MySQL是5.6版本,修改的方法有两种:

    (1)通过修改MySQL的配置文件 my-default.ini 

    首先,找到MySQL安装目录下的配置文件,例如:E:\MySQL\MySQL Server 5.6;

    然后打开my-default.ini,在 [mysqld] 下面添加 default-character-set=utf8 和 character-set-server=utf8 ;

    保存之后,重启MySQL数据库。

    重启完之后可以通过 show variables like 'character%'; 进行查看字符集情况。

    MySQL插入中文问题

    (2)通过mysql命令修改

    mysql>SET character_set_client = utf8;

    mysql>SET character_set_connection = utf8;

    mysql>SET character_set_database = utf8;

    mysql>SET character_set_results = utf8;

    mysql>SET character_set_server = utf8;

    mysql>SET collation_connection = utf8;

    mysql>SET collation_database = utf8;

    mysql>SET collaction_server = utf8;

    但是,就算设置了表的默认字符集为utf8并且通过utf8编码发送查询,你会发现存入数据库的仍然是乱码。这个问题出现在connection连接层上。解决办法是在发送SQL语句之前执行下面这一条语句:

    SET NAMES 'utf8';

    它相当于下面三条语句:

    SET character_set_client = utf8;

    SET character_set_results = utf8;

    


你可能感兴趣的:(mysql,中文乱码)