Frage

Ich habe Probleme, Unicode -Werte aus MySQL -Abfragen herauszuholen.

So mache ich es jetzt:

>>> 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'>

Wie Sie sehen können, gibt es keine Unicode zurück.

In meiner Tabellenstruktur wird title_de als unicode eingestellt.

IDbasic_applet  int(10)...
Title_de    varchar(75)     utf8_bin

Ich weiß wirklich nicht, was ich falsch mache, jede Hilfe wäre wirklich willkommen.

Danke im Voraus,

Simon

War es hilfreich?

Lösung

Was Sie bekommen, ist ein Bytestring. Sie müssen es dekodieren, um eine Unicode -Zeichenfolge zu erhalten. Es kommt im Grunde darauf an:

>>> byte_string = 'F\xe9vrier'
>>> byte_string.decode('UTF-8')
u'Février'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top