MySQL中文插入错误或乱码解决方法
问题
当我们想向数据库中的表格中插入中文数据时,却发现出来出现错误。 ERROR 1366 (HY000): Incorrect string value: ‘\xD5\xC5\xC8\xFD’ for column ‘name’ at row 1
如下图
或查找表时发现中文乱码,如下图
除去一些比较复杂的原因不讲(能力有限),主要的问题是DOS界面默认字符集为gbk,而一般来说,MySQL中的默认编码都为utf8,二者不匹配导致出现插入错误或查询时出现中文乱码。
解决方法
1.修改DOS界面的字符集
- 1.打开DOS界面
- 2.输入
chcp 65001
- 3.按回车完成后即可按正常步骤正常查看表的中文内容
注:
- 可能有些人修改后无法查看,这是要操作
属性
->字体
->Lucida Console
才能查看 (不过我没遇到这种情况) - 步骤2中chcp为查看当前界面字符集的命令,后面加字符集代码则修改为这种字符集,65001为utf8,936为gbk
- 步骤3中正常步骤为
mysql -uroot -p密码
->use 数据库名
->select * from 表名
- 优点:这种方法能很好的显示出表格内容
- 缺点:导致使用
insert into 表名 (字段1,字段2,字段3...) values(值1,值2,值3...);
语句无法使用(回车后无效)
2.修改数据库中的字符集
1.登录数据库 mysql -uroot -p密码
2.查看数据库中的字符集(可以省略)
SHOW variables LIKE "character%";
3.输入
set names gbk;
确认后可以发现
此时就可以插入中文数据或查看表格无乱码
- 优点:可以插入中文数据
- 缺点:表格不太美观(不确定是不是因为电脑的问题)
至此,我的问题就解决了!