Python was ist der Unterschied zwischen str (u'a ') und u'a'.encode (' utf-8 ')

8

Gibt es als Titel einen Grund, str () nicht zu verwenden, um Unicode-Strings in str ?? zu werfen?

%Vor%

UPDATE: danke für die Antwort, wusste auch nicht, ob ich eine Zeichenfolge mit Sonderzeichen erstellen wird es automatisch in utf-8

konvertieren %Vor%

Auch ist ein Unicode-Objekt in Python 3

    
James Lin 27.08.2012, 21:02
quelle

1 Antwort

19

Wenn Sie str(u'a') schreiben, wird die Unicode-Zeichenkette mit der Standardcodierung in eine Byte-Zeichenkette umgewandelt (sofern Sie sich nicht mit dem Problem ändert es ) wird ASCII sein.

Die zweite Version codiert die Zeichenfolge explizit als UTF-8.

Der Unterschied wird deutlicher, wenn Sie mit einer Zeichenfolge versuchen, die Nicht-ASCII-Zeichen enthält. Die zweite Version wird noch funktionieren:

%Vor%

Die erste Version wird eine Ausnahme geben:

%Vor%     
Mark Byers 27.08.2012, 21:04
quelle

Tags und Links