__Yang__
2017-10-15 07:37
采纳率: 0%
浏览 2.7k

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

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

图片说明

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

图片说明
图片说明

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

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

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

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • 肖国栋的i自留地 2017-10-15 09:05

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

    评论
    解决 无用
    打赏 举报
  • ChaoLingW 2017-10-15 13:02

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

    评论
    解决 无用
    打赏 举报
  • 卡卡真的很卡 2017-10-15 13:47

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

    评论
    解决 无用
    打赏 举报
  • 卡卡真的很卡 2017-10-15 13:53

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

    评论
    解决 无用
    打赏 举报
  • weixin_40646128 2017-10-15 13:54

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

    评论
    解决 无用
    打赏 举报
  • xuzuning 2017-10-15 14:19
     echo "\xb8\xdf\xb6\xfb\xbb\xf9";//高尔基
    

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

    评论
    解决 无用
    打赏 举报
  • Peyter 2017-10-15 17:05

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题