Archiv

Artikel Tagged ‘UTF8’

Mein lieblingsfehler bei Python: UnicodeEncodeError

25. Februar 2009 Manuel Keine Kommentare

Ich wollte bei meinem Djangoprojekt die Maps von Google verwenden und bin auf geopy gestoßen. Super dachte ich mir, eine API die sehr einfach zu verwenden ist. Eingebaut … getestet -> FEHLER: UnicodeEncodeError

Super! Ich mir den zu suchenden String angesehen – ja ein ß drinne – hmm das sollte eigentlich bei Unicode kein Thema sein aber leider wird das ganze durch urlencode() geschickt und da wird das Exception ausgeworfen.

Nach mehreren Stunden, zwei Kannen Kaffee und einem Blutdruck der meinem Reifendruck gleich kommt – entdeck ich durch Zufall die Lösung meines Problems:

STRING.encode(‘ascii’, ‘xmlcharrefreplace’)

Lustigerweise hab ich anstatt “xmlcharrefreplace” immer, wie fast überall empfohlen, nur das replace benutzt. Das hat dann aus “Borstenbachstraße” enfach mal “Borstenbachstra?e” gemacht und google-maps hat dann da “Breitenbachstraße” draus gemacht.

Die Lösung hab ich im Wiki von Python.org gefunden.

Python, UTF8 und BOM (byte order mark)

18. Juli 2008 Manuel Keine Kommentare

Wenn man Dateien im UTF-8 Format speichert mit BOM kann es vorkommen das dass erste Zeichen, was bei euch in Python ankommt nicht das ist, was ihr erwartet habt. Bei mir kam beim lesen ein \ufeff an anstatt dem erwarteten Buchstaben. Sicher könnt man nun sagen, bei der 1. Zeile einfach den 1. Buchstaben ignoreren. Das wäre aber zu einfach!

Weg bekommt ihr die BOM mit folgendem kleinen Konstrukt:

“Zeile”.lstrip( unicode( codecs.BOM_UTF8, “utf8″ ) )

KategorienPython Tags: , , ,

Python, mySQL und das Latin1/UTF-8 Problem

18. Juli 2008 Manuel Keine Kommentare

Nach über 4 Stunden suchen, hin und hergegoogle und immer wieder der selben Fehlermeldung beim absetzen eines Querys mit UTF-8 , bin ich fündig geworden. Im Grunde ganz einfach:

conn = MySQLdb.connect (host = “127.0.0.1″,user = “username”,passwd = “pass”,db = “db”, charset=’utf8′)

und als 1. Query ganz wichtig:

cursor.execute(“SET NAMES ‘utf8′;”);

Und schon klappts auch mit den UTF-8 Querys.

KategorienPython Tags: , , , , ,