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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容