Ich habe aus der Datenbank einen String zurückbekommen der UTF-8 war aber falsch kodiert zurückgegeben wurde. So wurde aus Geschäftsstelle -> Gesch├ñftsstelle
Folgendes Snippet kann einen kaputten UTF-8 String neu auf UTF-8 kodieren:
name_kaputt = 'Gesch\xc3\xa4ftsstelle' name = ''.join(chr(ord(c)) for c in name_kaputt).decode("utf-8") print name_kaputt print name
Ergebnis:
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> name_kaputt = 'Gesch\xc3\xa4ftsstelle' >>> name = ''.join(chr(ord(c)) for c in name_kaputt).decode("utf-8") >>> print name_kaputt Gesch├ñftsstelle >>> print name Geschäftsstelle