[mailinglist] Re: [Python-de] htmllib und Umlaute

Martin v. Löwis martin at v.loewis.de
Sun Apr 27 20:59:39 EDT 2003


Klaus Meyer <km-news1 at onlinehome.de> writes:

> >>> "abc\xe4".encode("latin-1")
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> UnicodeError: ASCII decoding error: ordinal not in range(128)
> 
> Warum ASCII-Decoding error, ich habe doch latin-1 angegeben?

encode: Eingabe ist Unicode-String, Ausgabe Byte-String
decode: Eingabe ist Byte-String, Ausgabe Unicode-String

Aufgrund einer m.E. unglücklichen Verallgemeinerung kann man auch für
Byte-Strings encode aufrufen. Die Semantik von

  B.encode(C)

ist

  unicode(B).encode(C)

(damit hat man wieder die normale .encode-Semantik); dies wiederum
bedeutet

  unicode(B, sys.getdefaultencoding()).encode(C)

Es ist die Konvertierung in Unicode die den Fehler liefert (deshalb
auch "ASCII *decoding* error", obwohl Du .encode rufst.

Ciao,
Martin





More information about the Python-de mailing list