String In Python mit meinem Unicode?

8
%Vor%

Was ist das Problem mit meiner Unicode-Zeichenfolge?

    
kn3l 26.03.2011, 20:57
quelle

3 Antworten

10

Es ist nichts falsch mit deiner Schnur! Sie haben nur encode() und decode() verwechselt. Die Zeichenfolge ist sinnvolle Symbole. Um es in Bytes umzuwandeln, die in einer Datei gespeichert oder über das Internet übertragen werden können, verwenden Sie encode() mit einer Codierung wie UTF-8. Jede Kodierung ist ein Schema zum Umwandeln bedeutungsvoller Symbole in flache Bytes der Ausgabe.

Wenn die Zeit kommt, das Gegenteil zu tun - um einige rohe Bytes aus einer Datei oder einem Sockel zu nehmen und sie in Symbole wie Buchstaben und Zahlen zu verwandeln - dekodieren Sie die Bytes mit dem decode() Methode der Bytestrings in Python 3.

%Vor%

Sehen Sie diese große lange Zeile von Bytes? Dies sind die Bytes, die UTF-8 zur Darstellung Ihrer Zeichenfolge verwendet, wenn Sie die Zeichenfolge über ein Netzwerk übertragen oder in einem Dokument speichern müssen. Es sind viele andere Kodierungen in Gebrauch, aber es scheint am beliebtesten zu sein. Jede Kodierung kann sinnvolle Symbole wie ន und យោ in Bytes umwandeln - die kleinen 8-Bit-Zahlen, mit denen Computer kommunizieren.

%Vor%     
Brandon Rhodes 26.03.2011, 21:03
quelle
7

Sie lesen die 2.x-Dokumentation. str.decode() (und bytes.encode() ) wurde in 3.x gelöscht. Und str ist bereits eine Unicode-Zeichenkette; Es gibt keine Notwendigkeit, es zu entschlüsseln.

    
Ignacio Vazquez-Abrams 26.03.2011 21:05
quelle
3

Sie haben bereits eine Unicode-Zeichenfolge. In Python 3 sind str Unicode-Strings ( unicode in Python 2.x) und Single-Byte-Strings (Python 2.x str ) werden nicht mehr als Text behandelt, sie heißen jetzt bytes . Letzterer kann mit seiner str -Methode in ein decode konvertiert werden, aber das erstere ist bereits decodiert - Sie können es nur in bytes zurückcodieren .

    
delnan 26.03.2011 21:11
quelle

Tags und Links