如何实现MySQL数据库在Java中能够支持emoji表情

今天就跟大家聊聊有关如何实现MySQL数据库在Java中能够支持emoji表情,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

创新互联2013年开创至今,先为安源等服务建站,安源等地企业,进行企业商务咨询服务。为安源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

前言

公司最近在开发中遇到一个问题,在弄帖子的发布与回复问题,然后再iOS端和Android端添加表情的时候都会出错

Caused by: java.sql.SQLException: Incorrect string value: '\xF6\x9D\x98\x84' for column 'comment' at row 1

提示表情有问题,然后赶紧查资料。

首先数据库编码为UTF-8,字段content设置为text(CHARSET=utf8 COLLATE=utf8_unicode_ci)用于存储帖子内容信息,现在上线新功能存储emoji表情,插入emoji表情就会报出上述错误,UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去。utf8mb4兼容utf8,且比utf8能表示更多的字符,所以要设置数据库的编码为utf8mb4。

数据库编码从utf8设置为utf8mb4

1、修改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

2、对数据库相关的表进行字符集修改

将数据库转换为utf8mb4

ALTER DATABASE post CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
ALTER TABLE `post_article` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
ALTER TABLE `post_article` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3、重启数据库

sudo /etc/init.d/mysql restart

4、检查数据库的字符集是否是utf8mb4

SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';

5、java 设置

设置Java的数据库连接,将characterEncoding去掉,然后保证mysql connector版本高于5.1.13,就OK了

看完上述内容,你们对如何实现MySQL数据库在Java中能够支持emoji表情有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


分享文章:如何实现MySQL数据库在Java中能够支持emoji表情
浏览路径:http://bzwzjz.com/article/gesidi.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都商城网站建设 成都网站设计 网站制作报价 成都品牌网站建设 成都网站制作 成都网站设计 营销网站建设 成都网站建设 四川成都网站建设 成都网站制作公司 企业网站设计 成都网站建设 重庆外贸网站建设 成都网站设计公司 成都网站建设 成都品牌网站设计 成都网站设计 手机网站制作设计 高端网站设计 网站建设 泸州网站建设 网站制作公司