python - MySQL显示波斯字符的问题

标签 python mysql utf-8 farsi

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

+--------------------------+---------+
| Variable_name            | Value   |
+--------------------------+---------+
| character_set_client     | utf8    |
| character_set_connection | utf8    |
| character_set_database   | utf8mb4 |
| character_set_filesystem | binary  |
| character_set_results    | utf8mb4 |
| character_set_server     | utf8    |
| character_set_system     | utf8    |
+--------------------------+---------+


这是我在服务器上执行SELECT查询时的波斯字符:

mysql> select dComment from dailyLeave;

+---------------------------------------------------+
| dComment                                          |
+---------------------------------------------------+
| مرخصی یک روزه به دلیل کسالت                       |
| مرخصی اجباری!                                     |
+---------------------------------------------------+


这是我在Python代码中执行相同查询时的输出:

cur, conn = connection()
cur.execute('SELECT dComment FROM dailyLeave')

(('????? ?? ???? ?? ???? ?????',), ('????? ??? ???? ????',))

最佳答案

我自己找到了解决方案,这很容易:)
在执行查询之前,请在代码中写入以下内容:

db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')


db是MySQLdb.connect()的结果,而dbc是db.cursor()的结果。

感谢The person who posted this

关于python - MySQL显示波斯字符的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59509610/

相关文章:

python - 多处理 | python中的多线程ffmpeg

python - 如何使用mechanize输入用户名和密码

mysql - magento 中的 mysql 语法错误

mysql - 不同 MySQL 系统上 Update 的执行时间差异很大

php - MySQL:如何创建在数组索引上使用数组变量执行的查询?

utf-8 - 检测任意字符串的字符集/脚本

python - 根据索引和列名逐个单元填充整个数据框?

python - Beautifulsoup 收到超时消息

python - 使用 numpy.savetxt 保存 utf-8 编码的文本

java - 无法在 glassfish 3.1 中将字符集从 ISO-8859-1 更改为 UTF-8