首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL utf8mb4字符集测试

文档说明

本文档主要针对mysql 5.5之后,jdbc向mysql插入emoji表情或者4字节字符报错的情况,通过配置my.cnf,database,table,测试修改utf8mb4字符集的可行方法。

测试环境

测试结果

测试代码:

[main]

[db.properties]

测试过程:

my.cnf=utf8|database=utf8|tables=utf8

result

无法写入4字节的字符

my.cnf=utf8|database=utf8|tables=utf8mb4

result

无法写入4字节的字符

my.cnf=utf8|database=utf8mb4|tables=utf8

result

无法写入4字节的字符

my.cnf=utf8|database=utf8mb4|tables=utf8mb4

result

无法写入4字节的字符

my.cnf=utf8mb4|database=utf8|tables=utf8

修改my.cnf character-set-server=utf8mb4:

result

无法写入4字节的字符

my.cnf=utf8mb4|database=utf8|tables=utf8mb4

result

成功写入。

在库中可以成功读取。

my.cnf=utf8mb4|database=utf8mb4|tables=utf8

result

无法写入4字节的字符

my.cnf=utf8mb4|database=utf8mb4|tables=utf8mb4

result

成功写入。

在库中可以成功读取。

utf8-utf8mb4修改方案

对于现有生产环境中的MySQL5.5版本以及由MySQL5.5升级后的MySQL5.7等使用utf8的情况(MySQL实例、DB、表、字段等均为utf8字符集),在遇到字符集问题时,可以采用以下快速简易方法进行修正:

Java代码中获取数据库连接时,执行set names utf8mb4 ,示例代码如下:

仅需修改相应数据库表中需要存储特殊字符的字段字符集为utf8mb4,实例如下:

Notes:以上方法在每次遇到特殊字符引起的问题时都需要进行单独的修改,数据库中存在两种不同的字符集,不便于管理。因此,建议对整个数据库进行字符集的修改:(最好先做mysqldump备份)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180507G0T4B700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券