返回顶部
首页 > 资讯 > 数据库 >10分钟完成MySQL对emoji的支持
  • 906
分享到

10分钟完成MySQL对emoji的支持

2024-04-02 19:04:59 906人浏览 安东尼
摘要

公司有新要求,ios客户端要上线评论中可以使用emoji表情的功能,在mysql 5.5 之前,UTF-8编码只支持1-3个字节;从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个


公司有新要求,ios客户端要上线评论中可以使用emoji表情的功能,在mysql 5.5 之前,UTF-8编码只支持1-3个字节;从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个字符能够支持更多的字符集,也能够支持更多表情符号。


utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。所以现在一些新的业务,比如iOS中的emoji表情,会将Mysql数据库的字符集设置为utf8mb4。



先看问题:

Caused by: java.sql.SQLException: Incorrect string value: '\xF6\x9D\x98\x84' for column 'comment' at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)


如果我们将列comment设置为varchar(100),用于存储评论信息,现在上线新功能存储emoji表情,插入emoji表情就会报出上述错误,UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。utf8mb4兼容utf8,且比utf8能表示更多的字符。

解决方案:将Mysql的编码从utf8转换成utf8mb4。



网上的文章各执一词,本文就生产环境中真实可用的参数进行记录


整体操作流程其实并不难



一:首先我们修改my.cnf参数

[client]
default-character-set=utf8mb4
  
  
[mysql]
default-character-set=utf8mb4
  
  
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
您可能感兴趣的文档:

--结束END--

本文标题: 10分钟完成MySQL对emoji的支持

本文链接: https://lsjlt.com/news/38661.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 10分钟完成MySQL对emoji的支持
    公司有新要求,ios客户端要上线评论中可以使用emoji表情的功能,在mysql 5.5 之前,UTF-8编码只支持1-3个字节;从MySQL 5.5开始,可以支持4个字节UTF编码 utf8mb4 ,一个...
    99+
    2024-04-02
  • 10分钟完成MySQL物理xtrabackup增量备份
    在生产环境中,我们一般采取mysqldump全库备份,但这对于大型数据库是不可用的,因为mysqldump是逻辑备份,备份和恢复的效率缓慢,根据个人经验给出一个临界值的话,50G以下的数据库可以用mysql...
    99+
    2024-04-02
  • mysql/Java服务端对emoji支持与问题的示例分析
    小编给大家分享一下mysql/Java服务端对emoji支持与问题的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题描述将底层抓取的微博数据存入mysql,有些数据存入失败,查看...
    99+
    2024-04-02
  • MySQL支持emoji图标存储的案例
    小编给大家分享一下MySQL支持emoji图标存储的案例,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!在MySLQ中 UPDATA 和 INSERT 数据的时候,如果数据上面带有emoji图标...
    99+
    2024-04-02
  • mysql对于unique_checks的支持
    这篇文章主要介绍“mysql对于unique_checks的支持”,在日常操作中,相信很多人在mysql对于unique_checks的支持问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • 支持IntelliJ IDEA13.1RC2完成Java8的是什么
    本篇文章为大家展示了支持IntelliJ IDEA13.1RC2完成Java8的是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。IntelliJ IDEA 13.1 RC2 发布了,完成了最终对...
    99+
    2023-06-17
  • MySQL 4.1+对多字符的支持
    MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次:服务器(serv...
    99+
    2024-04-02
  • Spring Boot对jdbc支持的示例分析
    这篇文章将为大家详细讲解有关Spring Boot对jdbc支持的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目结构pom.xmlpom.xml:<xml version=&q...
    99+
    2023-06-20
  • nacos只支持mysql的原因分析
    什么是Nacos 英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configur...
    99+
    2024-04-02
  • MySQL支不支持事务嵌套的案例分析
    MySQL支不支持事务嵌套的案例分析?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!最近开发中遇到了使用MySQL,多次开启...
    99+
    2024-04-02
  • 了解 Git 对大数据分析的支持吗?
    随着数据规模越来越大,大数据分析已经成为许多企业和组织不可或缺的一部分。Git 作为一种流行的版本控制工具,也在大数据分析中发挥着重要的作用。本文将介绍 Git 对大数据分析的支持,并演示一些实用的 Git 命令。 Git 的优势 Git...
    99+
    2023-07-10
    spring git 大数据
  • MySQL 5.7中对XA支持的改进有哪些
    这篇文章主要为大家展示了“MySQL 5.7中对XA支持的改进有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL 5.7中对XA支持的改进有哪些”这...
    99+
    2024-04-02
  • Mysql数据库支持的存储引擎对比
    目录存储引擎MySQL支持的存储引擎并发控制锁锁颗粒事务外键索引各种存储引擎的特点存储引擎 Mysql可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。 每一种存储...
    99+
    2024-04-02
  • 获取超过10分钟的SQL脚本不管有没有造成lock
    SELECT  [Spid] = session_id ,             ecid ,     &...
    99+
    2024-04-02
  • 10 分钟内打造出吸睛数据库标题的速成指南
    数据库管理是一个复杂的过程,但通过直观的可视化,可以让数据变得生动有趣。一个吸睛的数据库标题是数据可视化之旅中至关重要的一步,因为它可以吸引用户的兴趣,并为你的数据提供简洁、有意义的概览。以下是如何在 10 分钟内打造出引人入胜的数据库...
    99+
    2024-02-18
    数据库标题 UX 数据可视化 数据库美学
  • MySQL 5.7的分布式事务支持举例分析
    本篇内容主要讲解“MySQL 5.7的分布式事务支持举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL 5.7的分布式事务支持举例分析”吧! 分...
    99+
    2024-04-02
  • mysql查看是否支持分区的方法
    小编给大家分享一下mysql查看是否支持分区的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql查看是否支持分区的方法...
    99+
    2024-04-02
  • 5分钟让你的老旧网站支持IPv6、HTTPS、HTTP/2,不能再多了
          本文转载自微信公众号“ 郑海山dump”(ID:zhsdump),作者:郑海山   领导让我一个月部署100台服务器,我刚花了一天时间写了个自动化脚本,我现在占着工位吹着空调喝着咖啡刷着抖音看Ans...
    99+
    2023-06-04
  • MySQL 8.0 InnoDB对即时加字段的支持(instant add column)(译)
    原文地址:https://mysqlserverteam.com/mysql-8-0-innodb-now-supports-instant-add-column/   长期以来,即时DDL一直是最受欢迎的InnoDB功能之一。对...
    99+
    2019-06-11
    MySQL 8.0 InnoDB对即时加字段的支持(instant add column)(译)
  • MySQL中ProxySQL新版本如何实现对MGR的原生支持
    本篇文章给大家主要讲的是关于MySQL中ProxySQL新版本如何实现对MGR的原生支持的内容,感兴趣的话一起来看看这篇文章吧,相信看完MySQL中ProxySQL新版本如何实现对MGR的原生支持对大家多少...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作