【问题标题】:Problems with inserting emojis into database using mysql.connector in python在 python 中使用 mysql.connector 将表情符号插入数据库的问题
【发布时间】:2021-06-26 23:41:48
【问题描述】:

如标题所述,我在使用 python 中的mysql.connector 模块将表情符号插入 MariaDB 数据库时遇到问题。

当我尝试使用 python 将包含表情符号的数据插入到数据库中时,所有表情符号都被简单地替换为问号。我还通过在将表情符号插入数据库之前将它们输出到控制台来确保表情符号在 python 中工作。

在我将数据库中的排序规则更改为utf8mb4_general_ci 后,通过 phpMyAdmin 插入表情符号不再是问题。所以我可以确保数据库没有问题。

如果有任何帮助,我插入的数据来自 Steam API 并且包含昵称。

我现在想知道是否有人知道我可以如何解决这个问题。

希望我没有忘记任何重要信息。

【问题讨论】:

  • 您的第一个问题做得很好!谢谢。

标签: python mysql database character-encoding utf8mb4


【解决方案1】:

你说得对,表情符号可以用 Unicode 表示。您是否记得在您的 Python 程序中设置了connection character set 和排序规则?

这样的事情可能对你有帮助open the connection。

cnx = mysql.connector.connect(user='JonaWe', database='test',
                              use_unicode=True,
                              charset='utf8mb4,
                              collation='utf8mb4_general_ci',
                              etcetera)
cnx.set_charset_collation('utf8mb4', 'utf8mb4_general_ci')

Python 和 MySQL 之间的连接可能会混淆您表情符号的 utf8mb4 内容。

【讨论】:

  • 我不知道我也必须更改 pyhton 中的字符集排序规则。我尝试了它并使用'utf8mb4' 和'utf8mb4_general_ci' 作为参数导致以下错误:unknown encoding: utf8mb4。然后我尝试删除第一个参数,但没有它,它立即崩溃了。
  • 现在可以插入了,但是当我尝试选择某个日期时,我得到了未知的编码:utf8mb4 错误。
猜你喜欢
  • 2020-04-01
  • 2019-03-19
  • 2018-06-20
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-08
  • 1970-01-01
相关资源
最近更新 更多