StringMitUmlaut.encode("utf-8")

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alan
User
Beiträge: 81
Registriert: Dienstag 10. April 2007, 11:30

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)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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.
alan
User
Beiträge: 81
Registriert: Dienstag 10. April 2007, 11:30

Hmm danke...ASCII-only wäre die Welt einfacher.. :?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

alan hat geschrieben:ASCII-only wäre die Welt einfacher.. :?
UTF-8 only würde schon reichen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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.
TUFKAB – the user formerly known as blackbird
Antworten