Seite 1 von 1

StringMitUmlaut.encode("utf-8")

Verfasst: Dienstag 4. September 2007, 12:22
von alan
Das ist sicher ganz einfach, aber ich weiß trotzdem nicht weiter.

Code: Alles auswählen

def hash(StringMitUmlaut):
    return StringMitUmlaut.encode("utf-8")
--->
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)

Re: StringMitUmlaut.encode("utf-8")

Verfasst: Dienstag 4. September 2007, 12:26
von gerold
alan hat geschrieben:Das ist sicher ganz einfach
Hallo alan!

Nein, ist es leider nicht: http://www.python-forum.de/topic-5095.html

mfg
Gerold
:-)

Verfasst: Dienstag 4. September 2007, 12:30
von BlackJack
@alan: Du scheinst da wirklich eine Zeichenkette, also den Typ `str` zu haben. Zeichenketten kann man nicht kodieren, das macht nur bei Unicode-Zeichenketten Sinn.

Wie man am Syntax-Highlighting sieht, ist `hash` der Name einer eingebauten Funktion. Die sollte man nach Möglichkeit nicht an andere Objekte binden.

Verfasst: Dienstag 4. September 2007, 17:55
von alan
Hmm danke...ASCII-only wäre die Welt einfacher.. :?

Verfasst: Dienstag 4. September 2007, 18:44
von Leonidas
alan hat geschrieben:ASCII-only wäre die Welt einfacher.. :?
UTF-8 only würde schon reichen.

Re: StringMitUmlaut.encode("utf-8")

Verfasst: Dienstag 4. September 2007, 21:51
von mitsuhiko
gerold hat geschrieben:
alan hat geschrieben:Das ist sicher ganz einfach
Hallo alan!

Nein, ist es leider nicht: http://www.python-forum.de/topic-5095.html
Doch. Es ist einfach. Man kann das ganze nämlich auf zwei Dinge reduzieren:
str.decode und unicode.encode

str ist ein Bytestring mit einem bestimmten Encoding, den kann man mit decode(encoding) zu einem unicode String machen der dann kein Encoding mehr hat, sondern nur noch Zeicheninformationen. Wenn man den String dann wieder ausgeben will oder an ein Socket schicken, was weiß ich, da kann man dann wieder mit einem decode(encoding) einen Bytestring in einem bestimmten Encoding draus machen.