Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python MySQL显示波斯字符的问题_Python_Mysql_Utf 8_Farsi - Fatal编程技术网

Python MySQL显示波斯字符的问题

Python MySQL显示波斯字符的问题,python,mysql,utf-8,farsi,Python,Mysql,Utf 8,Farsi,我有一个Flask应用程序,它的数据库是MySQL。我正在尝试对其中一个包含波斯数据字段的表执行SELECT查询。查询输出是问号(?)而不是波斯语字符。 这是我的数据库字符集: +--------------------------+---------+ |变量名称|值| +--------------------------+---------+ |字符集客户机utf8| |字符集连接utf8| |字符集数据库utf8mb4| |字符集文件系统二进制| |字符集结果utf8mb4| |字符集服

我有一个Flask应用程序,它的数据库是MySQL。我正在尝试对其中一个包含波斯数据字段的表执行SELECT查询。查询输出是问号(?)而不是波斯语字符。 这是我的数据库字符集:

+--------------------------+---------+
|变量名称|值|
+--------------------------+---------+
|字符集客户机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条语句大多是多余的。请参见中的“问号”