关于在MySQL中无法插入中文字符的问题

在向表中插入中文字符时报错:

图片说明

上网搜索说是字符集的问题,但是我的数据库的编码是utf-8:

图片说明
图片说明

而且,如果不通过命令行插入数据,而是将数据库连接到网站后台,通过前端获取数据插入表中,就不会有问题:

图片说明
图片说明
图片说明

求教各位大佬这是什么原因?有什么解决方法吗?

从出错的提示上看,使用的编码是 gbk。
可以考虑先执行这个命令:set names utf8;
然后再执行 insert 看看。
参考:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html

编码格式错了 。修改一下编码格式吧

两个地方,一个是数据库字符集设置utf,一个是传入到数据库的字符要编码,在后台代码的请求函数开头设置即可。

如果是存到数据库乱码就用r equest.setCharacterEncoding("utf-8");//设置写到数据库的字符编码
如果是jsp读取乱码就用 repoonse.setContentType("text/plain;charset='utf-8'");

编码检查一下是不是设置对了

 echo "\xb8\xdf\xb6\xfb\xbb\xf9";//高尔基

可知您是在windows的cmd窗口进行的测试
而windows的cmd窗口的默认字符集是 gbk
所以你需要在连接数据库后执行 set names gbk 以通知MySQL将使用 gbk 字符集进行会话

编码设置错误,细节问题。