升级 MySql 支持 emoji 表情 与 utf8mb4

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 2016-10-27:如果一切该设置都设置了还是无效的话,试试在 mysql 链接字符串里面去掉 charset 参数!如下:url=jdbc\:mysql\://42.xx.xx.4\:7306/abc_test2?useUnicode\=true有童鞋对 Emoji 表情认知不深,对使用 Emoji 抵制,也不愿意去百度,所以有必要先科普下。

2016-10-27:如果一切该设置都设置了还是无效的话,试试在 mysql 链接字符串里面去掉 charset 参数!如下:

url=jdbc\:mysql\://42.xx.xx.4\:7306/abc_test2?useUnicode\=true

有童鞋对 Emoji 表情认知不深,对使用 Emoji 抵制,也不愿意去百度,所以有必要先科普下。

  • Emoji 表情是字符不是图片,如果客户端、数据库不支持就升级一下,浏览器也是。
  • 既然是字符,那可不可人工处理替换掉?可以是可以但是不建議。其实升级下相关组件版本就可以了。
  • Emoji 表情不是苹果独家的,他属于 unicode,是规范不是私有方案,大家都可以愉快地使用,不需要转换。

——其实这么简单的问题要说半天也是醉了。

不过就算升级 mysql 也不见得容易。当初以为升级数据库然后改改编码就可以,但试过之后没那么容易,不知道是不是 MySql 客户端的问题,NativeCat 和官方的 Workbench 也是如此。

通过客户端改编不行滴……下拉菜单那里無論怎么选择都是不行的……

相关参考:

  • http://bbs.csdn.net/topics/390055415
  • http://stackoverflow.com/questions/13653712/java-sql-sqlexception-incorrect-string-value-xf0-x9f-x91-xbd-xf0-x9f
  • http://afei2.sinaapp.com/?p=518&utm_source=tuicool&utm_medium=referral
  • http://www.linuxidc.com/Linux/2014-07/104231.htm
  • http://blog.itpub.net/28624388/viewspace-1064046/
  • http://mengkang.net/384.html  (替换的方法)

复制一个命令

alter table foo.foo convert to character set utf8mb4 collate utf8mb4_unicode_ci

然后 Java 代码中必须声明这个:

SET NAMES 'utf8mb4'

才可以插入 Emoji 表情。

Mysql 配置

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

还有就是升级一下 JDBC 驱动。

测试代码,也可以看看你的浏览器到底能否正确显示 Emoji 表情(不能显示就是 问号或者方块,升级浏览器吧!)。

Oh mygod,CSDN 的数据库插不入!要碰到 Emoji 字符就中断了!我还是用图片吧。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Test {

    public static void main(String[] args) {
        System.out.println("test string=" + "

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
29天前
|
监控 关系型数据库 MySQL
mysql升级和降级
mysql升级和降级
109 9
|
29天前
|
存储 缓存 关系型数据库
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
阿里云RDS率先推出新型存储类型通用云盘,提供低延迟、低成本、高持久性的用户体验。
鱼和熊掌如何兼得?一文解析RDS数据库存储架构升级
|
29天前
|
存储 关系型数据库 MySQL
升级宝典!阿里云RDS MySQL助力MySQL5.7升级到8.0
2023年10月,社区MySQL5.7停服。阿里云RDS MySQL对MySQL5.7的服务将进行到2024年10月21日,同时,并将通过有效的方案和大量的升级经验,鼓励和助力广大企业和开发者将MySQL5.7升级到MySQL8.0。
|
29天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
115 0
|
29天前
|
存储 关系型数据库 MySQL
Mysql中utf8和utf8mb4区别
Mysql中utf8和utf8mb4区别
55 0
|
15天前
|
存储 关系型数据库 MySQL
AnalyticDB MySQL新购页面融合升级,提供企业版和基础版选项
AnalyticDB MySQL新购页面升级,现推出企业版和基础版,不再区分湖仓版和数仓版。自2024年6月4日起,杭州地域支持新购企业版和基础版,其他地域仍为湖仓版和数仓版。企业版(集群模式)和基础版(单机模式)融合了弹性模式和预留模式的功能,提供资源隔离、弹性扩展及高性能查询。企业版适合开发测试和生产环境,而基础版适用于小规模测试,不推荐用于生产环境。
|
29天前
|
存储 自然语言处理 关系型数据库
👨‍💻如何使用MySQL存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别?
👨‍💻如何使用MySQL存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别?
125 1
|
6月前
|
存储 分布式计算 关系型数据库
云原生数据仓库AnalyticDB MySQL湖仓版架构升级,持续释放技术红利!
云原生数据仓库AnalyticDB MySQL湖仓版架降价23%!持续提供高性价比的产品服务
|
6月前
|
存储 SQL 关系型数据库
MySQL5.7到8.0的升级迁移!高效的MySQL跨版本迁移技术解读
NineData是一种高效、稳定且易于使用的迁移工具,可帮助用户将MySQL 5.7迁移到MySQL 8.0。由于MySQL 5.7已经结束生命周期并不再获得技术支持,因此迁移至MySQL 8.0是必要的。NineData提供了数据复制功能,包括数据迁移和实时同步,还支持双向复制。与传统迁移方法相比,NineData具有简单易用、数据一致、强劲性能和高可靠性的优势。它提供了完善的观测和干预能力,保障迁移的成功。此外,NineData还提供了对比功能,确保数据的一致性。通过简单的配置过程,用户可以实现自动化的数据迁移。NineData还提供了完善的观测和干预能力,帮助用户追踪迁移进展并诊断和修复
639 3
|
6月前
|
存储 分布式计算 关系型数据库