mysql保存Emoji表情或微信文字、图文回复带Emoji等微信表情图标?

版权声明:本文为Areom原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanjianjiu/article/details/82792813

背景:

客户需要在自动回复的文字、图文表情上使用Emoji表情?

原因:

Mysql表设计时,都是用UTF8字符集的,Mysql的utf8字符集是3字节的,而emoji是4字节,所以保存修改等操作会出错。

准备:

  1. mysql的版本必须为 v5.5.3 或更高

  2. 把数据库的编码改成 utf8mb4 -- UTF-8 Unicode

  3. 然后需要存储emoji表情的字段编码或者表编码修改成 utf8mb4_general_ci

  4. 数据库连接也需要改为utf8mb4

应用:

阿里云rds+微擎

第一种:

如果是项目才开始搭建,那么直接按照上述的准备设计数据库和链接数据库就可以了,不需要做其他操作;如果是已在使用的项目,那么请看第二种

第二种:

1、RDS数据库修改

//修改库:    
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

//修改表: ims_wechat_news(图文表)  ims_basic_reply(文字表)
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

//修改一列: 根据需求来,如果已修改了表,就不需要这个
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

2、微擎数据库连接修改(项目根目录/data/config.php)

$config['db']['master']['charset'] = 'utf8mb4';
//下面这个根据需求
$config['db']['slave']['1']['charset'] = 'utf8mb4';

3、微擎登录:系统-->更新缓存-->全选,提交!

转载借鉴:

https://help.aliyun.com/knowledge_detail/41692.html

https://blog.csdn.net/lein_wang/article/details/52872977

猜你喜欢

转载自blog.csdn.net/zhanjianjiu/article/details/82792813
今日推荐