gpt4 book ai didi

python - 如何在Python中编码(utf8mb4)

转载 作者:行者123 更新时间:2023-11-29 22:54:51 25 4
gpt4 key购买 nike

如何在 Python 中对 ut8mb4 进行编码?

我有两组数据:我正在从 Parse 迁移到新 MySQL 数据库的数据,以及 future 的数据(仅与我的新数据库通信)。我的数据库是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 应用程序。请帮忙!

最佳答案

为了表情符号和 U+FFFF 代码点之外的其他字符,我一直在努力在 Python 和 MySQL 之间正确交换全部 UTF-8 字符。

为了确保一切正常,我必须执行以下操作:

  1. 确保 MySQL 中的 CHARVARCHARTEXT 列使用 utf8mb4
  2. 在 Python 中强制执行 UTF-8
  3. 强制在 Python 和 MySQL 之间使用 UTF-8

要在 Python 中强制执行 UTF-8,请将以下行添加为 Python 脚本的第一行或第二行:

# -*- coding: utf-8 -*-

要在 Python 和 MySQL 之间强制使用 UTF-8,请按如下方式设置 MySQL 连接:

# Connect to mysql.
dbc = MySQLdb.connect(host='###', user='###', passwd='###', db='###', use_unicode=True)

# Create a cursor.
cursor = dbc.cursor()

# Enforce UTF-8 for the connection.
cursor.execute('SET NAMES utf8mb4')
cursor.execute("SET CHARACTER SET utf8mb4")
cursor.execute("SET character_set_connection=utf8mb4")

# Do database stuff.

# Commit data.
dbc.commit()

# Close cursor and connection.
cursor.close()
dbc.close()

这样,您就不需要使用 encodeutf8_encode 等函数。

关于python - 如何在Python中编码(utf8mb4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28752606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com