在MySQL的安装过程中,出于一些原因,安装完成后的MySQL默认编码方式是Latin1,不是中英文兼容性比较好的utf8编码方式,那么,在操作过程中会输入中文将出现一系列的报错
just like this:
ERROR 1366 (HY000): Incorrect string value: ‘\xE6\x96\xB0\xE9\x97\xBB...‘ for column ‘title‘ at row1
如何解决这令新手头疼的错误呢?
很简单,可以先查看一下mysql的编码,在MySQL命令行输入:show variables like ‘character%‘;
回车,你会看到MySQL的编码:
我的是修改过后的编码,如果没修改,很多编码是Latin1;这也是导致错误的原因
修改方法
在windows中:
首先打开MySQL的安装文件夹,用windows的记事本打开其中的My.ini文件进行编辑:
在记事本中用查找功能(CTRL+f)找到所有的含“character-set”的配置项,将其右端的值统一改成utf8后保存退出记事本;(记住不要改成utf-8)
最后重启服务器即可
在Linux中:
在/etc/mysql/my.cnf配置文件中进行更改:
更改如下内容:(前两行配置文件本来就有)
提示:在vi编辑器中要强行修改只读文件的内容,最后保存时可能遇到无法保存退出的情况,在命令模式下输入:":w !sudo tee %"就可以保存退出啦
最后重启服务器就可以了
因为之前创建数据库使用的Latin1,如果方便的话可以删除重新建一个,这样它的默认编码就是utf8,否则使用alter命令动态修该表的编码方式也可以:
命令如下:
ALTER TABLE ‘表名‘ DEFAULT CHARACTER SET utf8;
最后就没有问题啦
2019-10-12
原文地址:https://www.cnblogs.com/zhanghuachuan/p/11663069.html