博客
关于我
mysql支持表情
阅读量:789 次
发布时间:2023-02-12

本文共 628 字,大约阅读时间需要 2 分钟。

在实际开发中,可能会遇到需要存储表情符号的情况,尤其是在使用MySQL作为RDS时。如果不做任何处理,直接插入包含表情符号的文本,可能会导致“Incorrect String '\F0\F8'”等错误。这是因为MySQL数据库通常使用utf8编码,支持3字节的字符编码,而表情符号本身是4字节的UTF-16编码。为了解决这个问题,可以使用utf8mb4编码来实现兼容。

解决方法

  • 数据库字符集设置

    将数据库表的字符集设置为utf8mb4。

    alter table test1 convert to character set utf8mb4;
  • 客户端连接设置

    在程序中设置连接池的初始化SQL,使客户端编码集为utf8mb4。

    dataSource.setInitSql("set names utf8mb4");

  • 扩展:MySQL与Redis的区别

    为什么MySQL需要专门处理表情符号,而Redis不需要?

    这是因为MySQL是按字符进行编码的,而一个字符可能包含1-4个字节,这取决于所选的字符编码集。

    而Redis是按字节进行编码的,因此不会出现类似MySQL遇到的问题。


    注意事项

    • utf8mb4是MySQL的一个扩展字符集,能够完整支持所有UTF-16字符,包括emoji和复杂语言字符。
    • 如果仅存储ASCII字符,不需要启用utf8mb4,可以直接使用utf8编码。
    • emoji字符的支持取决于数据库的编码设置,正确配置后才能正常存储和检索。

    转载地址:http://cddfk.baihongyu.com/

    你可能感兴趣的文章
    mysql查询储存过程,函数,触发过程
    查看>>
    mysql查询总成绩的前3名学生信息
    查看>>
    mysql查询慢排查
    查看>>
    MySQL查询报错ERROR:No query specified
    查看>>
    mysql查询数据库储存数据的占用容量大小
    查看>>
    MySQL查询数据库所有表名及其注释
    查看>>
    MySQL查询数据表中数据记录(包括多表查询)
    查看>>
    MySQL查询结果排序
    查看>>
    MYSQL查询语句优化
    查看>>
    mysql查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层执行原理吗?
    查看>>
    MySQL查询语句:揭秘专家秘籍,让你秒变数据库达人!
    查看>>
    mysql查询超时对PHP执行的影响
    查看>>
    mysql查询输出到excel文件_如何保存mysql查询输出到excel或.txt文件?
    查看>>
    mysql查询过程
    查看>>
    MySQL模拟Oracle序列sequence
    查看>>
    Mysql模糊查询like效率,以及更高效的写法
    查看>>
    MySQL死锁套路:一次诡异的批量插入死锁问题分析
    查看>>
    Mysql死锁问题Deadlock found when trying to get lock;try restarting transaction
    查看>>
    mysql每个数据库的最大连接数_MySQL数据库最大连接数
    查看>>
    Mysql流程控制结构,if函数、case结构、if结构、循环结构
    查看>>