[Python-de] umwandlung von kyrillischen zeichen in decimalwerte

Gerhard Häring gh at ghaering.de
Thu May 15 13:02:37 EDT 2003


Nico Grubert wrote:
> hallo python liste,
>  
> ist hier eine kurze vorstellung zur person gewünscht ? wenn ja, dann 
> hole ich es mit der nächsten email nach. :-)
>  
> ich stehe vor dem problem, dass ich XML nachrichten mit python 
> verarbeite, und in den XML nachrichten strings wie z.b. "офия," 
> enthalten sind. diese strings muss ich umwandeln in decimal werte wie 
> z.b. "Рек лам" um diese in eine 
> postgres datenbank zu schreiben.

Ich empfehle pyPgSQL (bin Entwickler und darum nicht ganz 
unvoreingenommen). pyPgSQL kann als einziges Interface mit 
Unicode-Strings umgehen. Und vom XML-Parser wirst du Unicode bekommen. 
Mit pyPgSQL könntest du die Unicode-Strings transparent verwenden.

Frag mal hier nach, wenn du ein Beispiel brauchst.

> dazu habe ich 2 fragen:
> 1. wie wandele ich werte wie "офия," in "1056;ек 
> лам" um ?

Musst du das wirklich so encoden? Warum nicht einfach den String in 
einer Datenbank abspeichern, die das Backend-Encoding UNICODE oder 
KOI8-R hat? PostgreSQL unterstützt diese und mehr Encodings.

Ich denke, irgendwo wird es eine entspr. Hilfsfunktion schon geben, aber 
das sollte es auch tun:

def encode_for_xml(unicode_string):
     return "".join(["&#%i;" % ord(item) for item in  unicode_string])

Wenn du nach wie vor einen Unicode-String willst, dann einfach return 
u"".join(...).

> 2. wie funktioniert der umgekehrte weg?

Abgesehen von wieder selber bauen wird es auch hier eine Hilfsfunktion 
geben. Kennt die jemand? Martin?

-- Gerhard




More information about the Python-de mailing list