mysql插入中文出现错误:incorrect string value:'\xD5\xC5\xC8\xFD\xB7\xE1'的解决办法
安装完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
其实很多人说在这里编码只需把前面一处改成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...
评论