Python、mysqldb、およびunicode
-
26-10-2019 - |
質問
MySQLクエリからUnicode値を取得するのに問題があります。
これが私が今それをする方法です:
>>> from MySQLdb import connect
>>> from MySQLdb.cursors import DictCursor
>>> con = connect(
passwd = "****",
db = 'my_db',
user = "db_user",
host = "localhost",
cursorclass = DictCursor,
use_unicode=True,
charset="utf8"
)
>>> cursor = con.cursor ()
>>> cursor.execute (u'Select * from basic_applet')
>>> res = cursor.fetchall()
>>> print(res)
({'Title_de': 'test title', .... })
>>> type(res[0]['Title_de'])
<type 'str'>
ご覧のとおり、Unicodeを返すことはありません。
私のテーブル構造では、title_deはUnicodeとして設定されています。
IDbasic_applet int(10)...
Title_de varchar(75) utf8_bin
私は本当に間違っているのか本当にわかりません、助けは本当に歓迎されます。
前もって感謝します、
サイモン
解決
あなたが得るのはバイテストリングです。 Unicode文字列を取得するには、デコードする必要があります。それは基本的にこれに帰着します:
>>> byte_string = 'F\xe9vrier'
>>> byte_string.decode('UTF-8')
u'Février'
所属していません StackOverflow