[Python-de] umwandlung von kyrillischen zeichen in decimalwerte

Martin v. Löwis martin at v.loewis.de
Fri May 16 00:50:34 EDT 2003


"Nico Grubert" <nicogrubert at web.de> writes:

> ich stehe vor dem problem, dass ich XML nachrichten mit python
> verarbeite, und in den XML nachrichten strings wie
> z.b. "[unleserlich]" enthalten sind.

Das ist schonmal seltsam. Wie genau verarbeitest Du denn die
Nachrichten mit Python? Normalerweise solltest Du Unicode-Strings
bekommen, keine Byte-Strings.

Falls Du keine der Python-XML-Bibliotheken benutzt, kann es natürlich
sein, dass Du tatsächlich Bytestrings bekommst. In diesem Fall musst
Du wissen, welche Kodierung diese Bytestrings benutzen (koi8-r,
cp1251, utf-8, usw).

> 1. wie wandele ich werte wie "[unleserlich]" in "1056;&#1077;&#1082;
> &#1083;&#1072;&#1084;" um ?

Wenn Du die Kodierung kennst, unter Zuhilfenahme von Gerhards
encode_for_xml-Funktion:

  encode_for_xml(unicode(bytestring, russische_kodierung))

> 2. wie funktioniert der umgekehrte weg?

Zum Beispiel mit einem XML-Parser:

>>> from xml.dom.minidom import parseString
>>> doc = parseString("<foo>&#1077;&#1082; &#1083;&#1072;&#1084;</foo>")
>>> doc.documentElement.childNodes[0].data.encode("koi8-r")^
'\xc5\xcb \xcc\xc1\xcd'

Ciao,
Martin




More information about the Python-de mailing list