mysql插入ios表情符号报错

来源:互联网 发布:淘宝店铺商标制作 编辑:程序博客网 时间:2024/05/16 05:16


    今天项目中有一个评论的功能, 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服务


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

      

    

   

阅读全文
0 0