UnicodeEncodeError: Codecode 'ascii' kann Zeichen in Position 0-5 nicht codieren: Ordnungszahl nicht im Bereich (128) [duplizieren]

8

Ich versuche einfach, eine Zeichenkette zu entschlüsseln, die ähnlich wie eine XXXXXXXXXXXXXX ist. Aber ich bekomme einen Fehler:

%Vor%

Ich bin Python-Neuling. Was ist ein Problem? Danke!

    
Serhii Matrunchyk 16.02.2015, 15:23
quelle

2 Antworten

15

Python versucht, hilfreich zu sein. Sie können Unicode-Daten nicht decodieren, sie sind bereits decodiert. Also wird Python zuerst die Daten verschlüsseln (mit dem ASCII-Codec), um die zu dekodierenden Bytes zu erhalten. Es ist diese implizite Codierung, die fehlschlägt.

Wenn Sie Unicode-Daten haben, ist es nur sinnvoll, encodieren in UTF-8, nicht decodieren:

%Vor%

Wenn Sie einen Unicode-Wert haben wollten, genügt es, ein Unicode-Literal ( u'...' ) zu verwenden. Es ist keine weitere Decodierung erforderlich.

Die gleiche implizite Umwandlung findet in der anderen Richtung statt; Wenn Sie versuchen würden, einen Bytestring zu codieren, würden Sie eine implizite Decodierung auslösen:

%Vor%     
Martijn Pieters 16.02.2015, 15:25
quelle
10

Sie können die Standardcodierung utf-8 einstellen.

%Vor%     
Ranvijay Sachan 09.10.2015 05:22
quelle

Tags und Links