У меня проблемы с моим Python при вызове данных из моей базы данных MySQL.
База данных установлена в формате UTF-8 и содержит специальные буквы, такие как «Æ» и «Ø».
Это код, который я использую для вызова имен пользователей из моей таблицы
# -*- coding: UTF-8 -*-
import pymysql
db = pymysql.connect(
host="localhost",
user="root",
password="XXXXXXXX",
db="pythonconnectiontest",
charset="utf8"
)
cursor = db.cursor()
cursor.execute("SELECT Username FROM Account")
numrows = cursor.rowcount
for i in range (numrows):
row = cursor.fetchone()
print row
Ожидаемый результат:
ThisTextIsBrøken
Tæst
Word
Фактическая выработка:
(u'ThisTextIsBr\xf8ken',)
(u'T\xe6st',)
(u'Word',)
Я получаю, что 'U' перед значением указывает, что это UNICODE, и мне, вероятно, просто нужно заставить Python правильно интерпретировать текст с помощью encode () или decode ().
Я потратил много часов, пытаясь понять это, и решение, вероятно, очень простое.
Я надеюсь, что кто-то может помочь мне исправить это.
Спасибо за чтение.