Encoding: aus datenbank nach ANSI

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
McRib
User
Beiträge: 9
Registriert: Sonntag 1. Juli 2007, 17:31

Trotz http://www.python-forum.de/topic-5095.html komme ich nicht so richtig weiter. Wenn ich die Daten aus der LDAP DB hole, wird "Wünschelrute" als "W\xc3\xbcnschelrute" dargestellt. Das Gerät für die Ausgabe will allerdings Ein-Byte-Hex-Encoding nach ANSI (http://www.fabians-webdesign.de/tutoria ... mlaute.htm) also \xd6 statt &#214.

Code: Alles auswählen

print type(field)
gibt

Code: Alles auswählen

<type 'str'>
:?

Das Beispiel aus dem o.a. Link ergibt:

Code: Alles auswählen

./encoding.py 
<type 'str'>
<type 'unicode'>
<type 'str'>
Hallo Österreich
Hallo Ã&#150;sterreich
Hallo Ã&#150;sterreich
Aaaaargh !
BlackJack

Da das 'ü' offenbar in zwei Bytes kodiert ist, würde ich mal auf UTF-8 tippen. Also kann man das damit nach Unicode dekodieren. Die Unicode-Zeichenkette lässt sich dann als Latin-1 kodieren:

Code: Alles auswählen

In [34]: 'W\xc3\xbcnschelrute'.decode('utf-8').encode('latin-1')
Out[34]: 'W\xfcnschelrute'
Wo ist jetzt das Problem?
McRib
User
Beiträge: 9
Registriert: Sonntag 1. Juli 2007, 17:31

Wo ist jetzt das Problem?
Es hat sich in Wohlgefallen aufgeloest. Vielen Dank. In dem xterm hier werden die Sonderzeichen mit einem nicht-druckbaren Zeichen gekennzeichnet... Aber auf dem Geraet funktioniert es. Cool... :-)
Antworten