Python MySQL显示波斯字符的问题
我有一个Flask应用程序,它的数据库是MySQL。我正在尝试对其中一个包含波斯数据字段的表执行SELECT查询。查询输出是问号(?)而不是波斯语字符。 这是我的数据库字符集:Python MySQL显示波斯字符的问题,python,mysql,utf-8,farsi,Python,Mysql,Utf 8,Farsi,我有一个Flask应用程序,它的数据库是MySQL。我正在尝试对其中一个包含波斯数据字段的表执行SELECT查询。查询输出是问号(?)而不是波斯语字符。 这是我的数据库字符集: +--------------------------+---------+ |变量名称|值| +--------------------------+---------+ |字符集客户机utf8| |字符集连接utf8| |字符集数据库utf8mb4| |字符集文件系统二进制| |字符集结果utf8mb4| |字符集服
+--------------------------+---------+
|变量名称|值|
+--------------------------+---------+
|字符集客户机utf8|
|字符集连接utf8|
|字符集数据库utf8mb4|
|字符集文件系统二进制|
|字符集结果utf8mb4|
|字符集服务器utf8|
|字符集系统utf8|
+--------------------------+---------+
以下是我在服务器上执行SELECT查询时的波斯语字符:
mysql>从dailyLeave中选择dComment;
+---------------------------------------------------+
|D建议|
+---------------------------------------------------+
| مرخصی یک روزه به دلیل کسالت |
| مرخصی اجباری! |
+---------------------------------------------------+
下面是在Python代码中执行相同查询时的输出:
cur,conn=connection()
cur.execute('SELECT dComment FROM dailyLeave')
(('????? ?? ???? ?? ???? ?????',), ('????? ??? ???? ????',))
我自己找到了解决方案,非常简单:)
在执行查询之前,请在代码中编写以下内容:
db.set\u字符集('utf8')
execute('SET NAMES utf8;')
execute('SET CHARACTER SET utf8;')
execute('SET character\u SET\u connection=utf8;'))
db是MySQLdb.connect()的结果,dbc是db.cursor()的结果
多亏了。这4条语句大多是多余的。请参见中的“问号”