1

这是我的代码,它连接到数据库,并将俄语单词插入数据库:

import mysql.connector

    if __name__ == '__main__':
        try:
            cnx = mysql.connector.connect(user='user', password='password',
                                      host='123.123.123.123',
                                      database='db_name',
                                      charset='utf8',
                                      collation='utf8_general_ci',
                                      use_unicode=True)
        except BaseException as ex: 
            print('Error: ' + str(ex))
            cnx.close()
        else:
            print('Connections succesful!')
            cnx.set_charset_collation('utf8', 'utf8_general_ci')
            cursor = cnx.cursor()
    print(cnx.charset)
    cursor.execute("INSERT INTO table_name (column_name) values ('привет!')") #means 'Hello!' in russian
    cursor.execute("SELECT * FROM test_referers")
    print(cursor.fetchall())

这就是我得到的:

Connection succesful!
utf8
(1, u'\u043f\u0440\u0438\u0432\u0435\u0442!')

这样的输出出现在 Python 解释器控制台和 Eclipse PyDev 中。

请帮助

4

1 回答 1

3

您的输出是有效的 Unicode。Python 使用 Unicode 转义值 ( ) 回显给您,\uxxxx因为该行由一个包含两个项目的元组组成;当打印一个元组时,它的内容被表示为 python 文字。

如果您要使用以下代码:

print(cursor.fetchall()[1])

相反,它会打印:

привет!

您可以通过使用 python 提示打印文字值来测试这一点:

>>> print u'\u043f\u0440\u0438\u0432\u0435\u0442!'
привет!
于 2012-12-05T16:22:02.643 回答