【问题标题】:How to convert question marks instead text to cyrillic?如何将问号而不是文本转换为西里尔字母?
【发布时间】:2019-04-27 10:14:07
【问题描述】:

在我的 python3 程序中从 MySQL 打印 Cyrillic 文本时,我得到的是问号而不是文本。

我在 MySQL 表中看到的文字是Рожден ден

我在python3程序中看到的文字是?????? ???

行的类型是str类。

对于这个列表,我使用的是 wxpython,wx 模块。

conn = pymysql.connect(host='localhost', database='Tasks', password='password', user='user')
        cursor = conn.cursor()

        cursor.execute('SELECT occasion,date,event FROM Important_Days')  
        records = cursor.fetchall()

        for row in records:
                pos = self.list1.InsertStringItem(0, row[0])
                self.list1.SetStringItem(pos, 1, str(row[1]))
                self.list1.SetStringItem(pos, 2, row[2])

        conn.close()

【问题讨论】:

  • This question 使用不同的驱动程序 (MySQLdb),但得分最高的答案显示了一种配置 MySQL 以处理 unicode 的方法。对this question 的接受答案(同样适用于 MySQLdb)显示了要在connect 调用上设置的参数。值得在谷歌上搜索如何最好地配置 MySQL 来处理 unicode。在更改任何数据库设置之前进行备份。
  • python cyrillic decode的可能重复
  • 可能有更好的副本,但它们取决于您在 MySQL 端配置的准确程度。一般可能的重复是stackoverflow.com/questions/46061496/…

标签: python mysql character-encoding


【解决方案1】:

问号是在INSERTs 期间创建的,没有办法将西里尔字母去掉。

Trouble with UTF-8 characters; what I see is not what I stored中的“问号”

有关 Python 的说明请参阅此:http://mysql.rjweb.org/doc.php/charcoll#python

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多