[Python-de] htmllib und Umlaute

Gerhard Häring gh at ghaering.de
Fri Apr 25 20:06:17 EDT 2003


Uwe Schmitt wrote:
> Hallo,
> 
> ich benutze folgendes Programm um aus einem
> HTML-String den Inhalt zu extrahieren:
> [...]
> Das funktioniert auch wunderbar bis auf die Tatsache, daß Ü nicht zum
> "Ü" umgesetzt wird, "Ü" wird durch '\xdc' ersetzt, was aber kein "Ü" ist.
> Dachte zuerst StringIO() wäre dran schuld, aber das konnte ich ausschließen. [...]

Auf deiner Konsole ist ein anderer Zeichensatz wie^als in dem 
HTML-Dokument eingestellt (iso-8859-1).

Probier mal (hab ich mir von Martin abgeschaut):

#v+
import formatter
import htmllib
import StringIO
import unicodedata

def html2Text(htmlText):

         fp = StringIO.StringIO()
         w = formatter.DumbWriter(fp)           # gibt einfach nur text aus
         f = formatter.AbstractFormatter(w)     # vermittelt zu w

         # parse HTML und erzeuge Aufrufe nach f
         p = htmllib.HTMLParser(f)
         p.feed(htmlText)
         p.close()

         return fp.getvalue()

html = "Ü"

res= html2Text(html)

print unicodedata.name(unicode(res, "iso-8859-1"))
#v-

==>
C:\tmp>python uml.py
LATIN CAPITAL LETTER U WITH DIAERESIS

Die Umwandlung funktioniert also korrekt.

-- Gerhard




More information about the Python-de mailing list