我有一个Django 1.4应用程序,它使用utf8字符集在mysql数据库中保存文本。一切都运行正常,但是当我想用ruby读取这些数据时遇到了一个问题,其中emojis的字符串抛出了invalid byte sequence in utf-8
异常。
快速搜索告诉我,我应该在mysql中使用utf8mb4
字符集,但由于此时这些字符串似乎不是有效的utf-8,因此简单alter table
更改字符集是没有解决问题。
Django如何首先保存这些字符串,使emojis能够与utf8
(而不是utf8mb4
)charset一起工作?
示例:测试过的字符串是一个表情符号:
- str
类型,序列:[237, 160, 189, 237, 180, 165]
从Django中的db获取 - unicode
类型,序列[55357, 56613]
从Rails中的db中获取 - 序列[237, 160, 189, 237, 180, 165]
Django和Rails在连接数据库时都使用utf8编码。