美文网首页
Python+Flask+MySQL设置emoji utf8mb

Python+Flask+MySQL设置emoji utf8mb

作者: jystarter | 来源:发表于2018-02-20 18:40 被阅读0次

    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表情的读写

    相关文章

      网友评论

          本文标题:Python+Flask+MySQL设置emoji utf8mb

          本文链接:https://www.haomeiwen.com/subject/iwomdxtx.html