从 mysql 数据库中检索图像

Posted

技术标签:

【中文标题】从 mysql 数据库中检索图像【英文标题】:retreive emojii from mysql database 【发布时间】:2021-10-07 20:59:27 【问题描述】:

我正在尝试从 mysql 中选择一个包含表情符号的 utf8 字符串 而不是 emojii 我得到的是问号

import MySQLdb
db=MySQLdb.connect(host='host', user='user', passwd='password', db='db', charset='utf8mb4', use_unicode=True)
c=db.cursor()
c.execute("SET NAMES UTF8")

c.execute("SELECT message FROM chat WHERE...")
res = c.fetchone()[0]
#the res variable should contain '????234абв'. I checked in database explorer

#saving the res into the file to avoid terminal encodeing issues
with open('test.txt','w',encoding='utf-8-sig') as f:
    f.write(res)

#and voila! I'm gettin '?234абв' in the file!!!

我的数据库确实使用带有排序规则“utf8mb4_unicode_ci”的“utf8mb4”编码。 mysql 连接使用 charset='utf8mb4' 选项初始化。 我确实运行了“设置名称 utf8”。

我正在使用 python 3.8.5。

我在这里错过了什么?

【问题讨论】:

utf8中的“问号” 【参考方案1】:

和往常一样,找到解决方案的最佳方法是询问某人。橡皮鸭调试

我发现我应该使用 c.execute("SET NAMES UTF8mb4") 而不是 c.execute("SET NAMES UTF8")

【讨论】:

以上是关于从 mysql 数据库中检索图像的主要内容,如果未能解决你的问题,请参考以下文章

从 mysql 数据库中检索图像

android 从 MySql 数据库中检索 blob 图像

从 mysql 数据库中检索为 blob 图像时图像损坏

如何使用 PHP 从 MySQL 数据库中存储和检索图像?

Android:无法从mysql数据库中检索图像URL并将其显示在imageView中

从mysql中检索图像并设置为pictureBox C#