首页 学习日记正文

mysql插入中文出现错误:incorrect string value:'\xD5\xC5\xC8\xFD\xB7\xE1'的解决办法

阿沐 学习日记 2019-04-25 670 0

mysql插入中文出现错误:incorrect string value:'\xD5\xC5\xC8\xFD\xB7\xE1'的解决办法

28ISYMAO4[FXAYT6$GYTVI0.png

安装完mysql后,发现在插入数据时,当数据类型为字符串时插入中文会报错:ERROR 1366 (HY000): Incorrect string value: '\xB8\xDF\xBC\xB6' for column 'NAME' at row 1


其实,出现这个问题的原因就是字符编码不对应导致中文字符插入不了,从度娘里试过了几种方法,总结出了以下几种解决方案:


一:修改字符集为utf_8

alter table user change name name varchar(20) character set utf8 collate utf8_unicode_ci not null default '';


这里的意思就是:把名为user表里的name字段修改格式为utf-8格式(红色字体为可变参数)

这种方法就是针对于这次修改表内字段编码,可能下次不同表里插入可能还会出现这种问题,当然解决方法还是一样的(哪里出错改哪里!)

这种方法在一定程度上很麻烦,下面介绍一种更实用的方法:

二:修改my.ini文件

查看隐藏文件里的my.ini文件

修改编码:

default-character-set=gbk

character-set-server=gbk

A2WOTSQI$)HDJFQ[3_P1}K0.png


其实很多人说在这里编码只需把前面一处改成gbk就行,我都试了感觉都差不多吧,感觉都能解决中文问题


很多时候,出现编码问题直接用set names gbk;就好了。

就比如当前这种问题,我觉得是因为windows中用的是gbk,我们插入数据的时候打出来的字是gbk,也就是在dos上显示的字就是gbk,而mysql客户端(也就是dos)接收的却是utf8,两个就冲突了。

改为gbk后,mysql会自动把前台(dos界面)的gbk转换为utf8。

这样就统一了编码,也就不会报错了...


忘了说的一点就是:

在mysql里可用 show variables like 'char%'; 

这一句来查看编码,看里面的编码值是否是我们想要的

如果不是,可自行修改:

set character_set_client = utf8;


set character_set_server = utf8;


set character_set_connection = utf8;


set character_set_database = utf8;


set character_set_results = utf8;


set collation_connection = utf8_general_ci;


set collation_database = utf8_general_ci;


set collation_server = utf8_general_ci;


------------------------------------

编者:阿沐

Loading...



打赏

评论

Music