mysql存储emoji

项目客户端是ios app,字符涉及到emoji表情。
保存到服务器时候出现:
(1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x84' for column 'content' at row 1")

原因

emoji是4个字节编码, 原来的utf8不能保存。

使用 utf8mb4解决问题

修改mysql配置

    [client]
default-character-set = utf8mb4

[mysql]
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链接

e = create_engine("mysql+pymysql://scott:tiger@localhost/test?charset=utf8mb4")

参考

1.http://blog.csdn.net/boycycyzero/article/details/42879911
2.http://docs.sqlalchemy.org/en/rel_0_9/dialects/mysql.html

    原文作者:hqman
    原文地址: https://segmentfault.com/a/1190000003388654
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞