Python+Flask+MySQL设置emoji utf8mb4存储

Emoji表情符号为4个字节的字符,而utf8字符集只支持1-3个字节的字符,导致正常配置下的mysql数据库无法存储Emoji表情,前端传过来的文本会自动省略掉emoji内容。

解决方案分为两部分:

(1)设置MySql数据库格式

(2)设置服务器接入MySql的字符格式

1.设置MySQL数据库字符类型

找到/etc/mysql路径下的my.cnf文件,通过vi命令打开该文件并进行编辑,需添加如下所示配置:

[client]

default-character-set=utf8mb4

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

init_connect=’SET NAMES utf8mb4'

[mysql]

default-character-set=utf8mb4

修改完毕之后,通过wq保存退出,并重启数据库,执行service mysql restart

可以通过MysqlWorkbench检查数据库表字符类型是否已修改


2.设置服务器接入MySql的字符格式

在Python+Flask架构中,数据库接入url为:SQLALCHEMY_DATABASE_URI='mysql://[user_name]:[password]@[host]/[database_name]'

默认为utf8,因此改为:SQLALCHEMY_DATABASE_URI='mysql://[user_name]:[password]@[host]/[database_name]?charset=utf8mb4'

重启数据库、重启服务器,即可实现emoji表情的读写

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 摘要:在MySQL的使用过程中,了解字符集、字符序的概念,以及不同设置对数据存储、比较的影响非常重要。不少同学在日...
    暖夏未眠丶阅读 4,225评论 0 2
  • 转 问题描述: 如果UTF8字符集且是Java服务器的话,当存储含有emoji表情时,会抛出类似如下异常: jav...
    天上掉陷阱阅读 4,082评论 0 3
  • 西方哲学有一个特别有意思却始终没有固定答案的命题:"我是谁?我从哪里来?我要到哪里去?"更多的思考都集...
    纯色集合阅读 1,733评论 2 0
  • 5月22日上午十一点,我收到妈妈的微信,说我弟媳生了,女孩。 我心里一沉,我猜妈妈一定很失望。 下午三点,我弟给我...
    竹筠益阅读 3,385评论 1 5
  • 投行工作的Adam过生日,照例一年一度的生日会。去年是在高档K房,今年改到酒吧西餐厅。南亚裔的服务生帮Fiona推...
    Chateau阅读 1,634评论 0 2

友情链接更多精彩内容