zoukankan      html  css  js  c++  java
  • emoji表情无法存入MYSQL的问题

    项目开发中需求需要存入emoji表情,但在保存mysql过程中报错。

    执行mysql插入语句,报错

    1 row(s) affected, 1warning(s): 1366 Incorrect string valu: 'xF0x9Fx98x93' fpr column 'name' at row 1
    

    原因

    在查找资料中发现,原本utf-8的3字节是可以覆盖所有语言的,但后来emoji符号的出现导致字符集扩展了,导致utf-8出现一些4字节的符号,mysql的utf-8一个字符占3个字节,但emoji表情需要占4个字节,因此造成文本无法保存。

    解决

    1.把数据库编码改为utf8mb4,但因为utf8mb4是占4字节,为了节省空间一般不会直接改库编码。

    2.单独把某个表的字段改为utf8mb4

    ALTER TABLE `表名` CHANGE COLUMN `列名` `列名` VARCHAR(45) CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci' NULL DEFAULT NULL;
    

    修改后再次执行插入语句,成功插入,问题解决。

  • 相关阅读:
    MySQL数据库分页
    Spring MVC
    Spring框架
    Java学习计划(转载)
    开发用户注册模块
    Ajax技术
    Jodd Email 发送邮件
    DOM技术
    MD5加密
    final关键字的使用
  • 原文地址:https://www.cnblogs.com/nicori/p/13497167.html
Copyright © 2011-2022 走看看