【1】数据库插入中文出现以下错误:
Incorrect string value: '\xC0\xEE\xCB\xC4' for column 'name' at row 1
【2】原因剖析
因为,我们的Windows系统的编码是gbk编码格式,但是我的数据库的使用编码格式是utf-8,导致出现插入中文错误。
【3】解决方案
(1)治标方案
set names gbk;
仅在本窗口设置编码格式为gbk,当重新打开新的窗口的时候,插入中文还是会报错。
(2)治本方案
打开MySQL安装的目录。一般在C:\Program Files (x86)\MySQL\MySQL Server 5.5是这个目录。
在该目录中,找到my.ini文件,打开它。
default-character-set=utf8 将这句话修改为 default-character-set=gbk(如果使用Notepad++打开,在第57行)
然后开启mysql。
(3)其他问题,窗口显示?现象
如果执行以上步骤之后,能够插入中文了,但是中文以“?”表示。建议使用,第三方前台软件,像Sqlyog或者navicat。
如果需要以上软件,可以私信我。
【4】补充
使用以下语句查看数据库编码格式
show variables like '%char%';
显示结果:
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
其中
- client是客户端使用的字符集。
- connection是连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型就按照服务器端默认的字符集设置。
- database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
- results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
- server是服务器安装时指定的默认字符集设定。
- system是数据库系统使用的字符集设定。(utf-8不可修改)
我们主要修改的是client、connection、results三个字符集。使用修改my.ini文件可以修改以上三个结果。