mysql插入ios表情符号报错

xiaoxiao2021-02-28  5

    今天项目中有一个评论的功能, ios输入一个emoji表情后, 服务端异常,通过查看信息得知是mysql对表情符号插不进去导致,

    仔细了解下,是因为普通的字符串或者表情都是占位3个字节,所以utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集.

    那接下来就是解决问题,下面的都是自己的亲测可用:

    1. 修改表字段字符集为utf8mb4

         ALTER TABLE thirdpartyuserinfo MODIFY NickName TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;         ALTER TABLE userinfo MODIFY NickName TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

    2.再去修改表字符集utf8mb4

         ALTER TABLE thirdpartyuserinfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;          ALTER TABLE userinfo CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 

    3.再去修改数据库的字符集utf8mb4

         cd /etc/vim my.cnf          添加下面两句到文件中,保存退出

          init-connect='SET NAMES utf8mb4'           character-set-server=utf8mb4

    4 重启mysql服务

通过上面的操作,就能把表情插入进去了.

      

    

   

转载请注明原文地址: https://www.6miu.com/read-1950175.html

最新回复(0)