zoukankan      html  css  js  c++  java
  • 彻底解决:java.sql.SQLException: Incorrect string value: 'xF0x9Fx92x94' for column 'name' at row 1

    这个报错的原因是因为emoji或者可能的特殊字符插入数据库导致的字节数不一致问题,参考下面那篇文章.

    做微信绑定的时候,一直绑定失败,一开始解决问题的思路错误了.

    对于不方便抓包的手机web,遇到问题首先应该在服务器端看是否收到请求,如果收不到再抓包查看请求是否发送.

    这样就能确认问题出在了哪里,客户端/应用服务器/db,可以用sout输出信息来进行测试.

    这次的问题是因为nickname里面不知道为什么有特殊字符(我昵称明明是中文),然后服务器端发现抛出了这个异常.

    百度后发现这个是因为数据库字符集不支持emoji,我这下知道为什么我本机一直可以插入了,因为我本机是utf8(默认创建就是),所以不会有这个问题,但是服务器端默认创建的数据库是latin,这下原因知道了,所以我把本机和服务器的数据库都换成了utf8mb4,utf8mb4_unicode_ci,并且根据 https://blog.csdn.net/qq_31122833/article/details/83992085 设置了服务器上的mysql默认字符集/去除了java连接中的编码.

    所以以后数据库创建不能再不选字符集了,linux下的mysql创建数据库有可能不是默认的utf8,所以要指定为 utf8mb4,utf8mb4_unicode_ci ,这样以后就不会出现这种问题了.

  • 相关阅读:
    python入门第十七天_生成器 迭代器
    python入门第十六天__列表生成式
    装饰器补充知识点_ @functools.wraps(func)
    函数练习题2
    函数编程练习题1
    迭代器
    生成器的send方法
    函数写生成器
    斐波那契数列
    生成器
  • 原文地址:https://www.cnblogs.com/kinome/p/12691684.html
Copyright © 2011-2022 走看看