Django如何使用utf8 charset将emojis存储在mysql表中?

时间:2018-03-05 15:40:51

标签: python mysql django utf-8 utf8mb4

我有一个Django 1.4应用程序,它使用utf8字符集在mysql数据库中保存文本。一切都运行正常,但是当我想用ruby读取这些数据时遇到了一个问题,其中emojis的字符串抛出了invalid byte sequence in utf-8异常。

快速搜索告诉我,我应该在mysql中使用utf8mb4字符集,但由于此时这些字符串似乎不是有效的utf-8,因此简单alter table更改字符集是没有解决问题。

Django如何首先保存这些字符串,使emojis能够与utf8(而不是utf8mb4)charset一起工作?

修改

示例:测试过的字符串是一个表情符号:

    保存在Django之前的
  • - str类型,序列:[237, 160, 189, 237, 180, 165]

  • 从Django中的db获取 - unicode类型,序列[55357, 56613]

  • 从Rails中的db中获取 - 序列[237, 160, 189, 237, 180, 165]

Django和Rails在连接数据库时都使用utf8编码。

0 个答案:

没有答案