【发布时间】:2014-12-19 09:28:10
【问题描述】:
如何在 Python 中对 ut8mb4 中的内容进行编码?
我有两组数据:我正在从 Parse 迁移到我的新 MySQL 数据库的数据,以及未来的数据(仅与我的新数据库对话)。我的数据库是 utf8mb4,用于存储表情符号和重音字母。
第一组数据只有在我的 python 脚本中有时才能正确显示(当涉及表情符号和口音时):
MySQLdb.escape_string(unicode(xstr(data.get('message'))).encode('utf-8'))
当从 PHP 中读取 MySQL 数据库时:
$row["message"] = utf8_encode($row["message"]);
第二组数据只有在我不包含utf8_encode($row["message"]) 部分时才能正确显示(当涉及表情符号和重音符号时)。我正在尝试协调这些,以便将两组数据正确返回到我的 iOS 应用程序。请帮忙!
【问题讨论】:
-
我猜你说的是 MySQL?如果是这样,那么 Python 的 utf8 应该与 MySQL 的 utf8mb4 相同。您能否更具体地说明您正在做什么以及您看到的结果?
-
似乎 utf8mb4 是 MySQL 发明的,因为他们的 ut8 实现只适用于 BMP 字符。普通 utf8 不是这种情况,它可以编码任何 unicode 字符。这就是 Python 使用的编码。也许 MySQL 提供了一组函数来处理他们的自定义编码?
-
@MarkRansom 在问题中添加了更多内容以更具体
-
目前尚不清楚 a) 在这两种情况下您的数据是什么样的,以及 b) 数据在不起作用时是什么样的。请明确定义您遇到的问题。
标签: python mysql encoding utf-8