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.htmlhtml

相關文章
相關標籤/搜索