从 mysql 数据库中检索表情符号
retreive emojii from mysql database
我正在尝试 select 从 Mysql 包含表情符号的 utf8 字符串
而不是表情符号,我得到的是问号
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' 编码和整理 'utf8mb4_unicode_ci'。
mysql 连接是用 charset='utf8mb4' 选项初始化的。
我做了 运行 'set names utf8'.
我正在使用 python 3.8.5.
我在这里错过了什么?
一如既往,找到解决方案的最佳方式是询问他人。橡皮鸭调试
我发现我应该使用
c.execute("SET NAMES UTF8mb4")
而不是 c.execute("SET NAMES UTF8")
我正在尝试 select 从 Mysql 包含表情符号的 utf8 字符串 而不是表情符号,我得到的是问号
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' 编码和整理 'utf8mb4_unicode_ci'。 mysql 连接是用 charset='utf8mb4' 选项初始化的。 我做了 运行 'set names utf8'.
我正在使用 python 3.8.5.
我在这里错过了什么?
一如既往,找到解决方案的最佳方式是询问他人。橡皮鸭调试
我发现我应该使用
c.execute("SET NAMES UTF8mb4")
而不是 c.execute("SET NAMES UTF8")