2017-05-15 5 views
2

Gemäß der Dokumentation ersetzen, den folgenden Befehlpython3 kodieren Unicode-Zeichen

'Brückenspinne'.encode("utf-8",errors='replace') 

geben sollte mir die Bytefolge b'Br??ckenspinne'. Unicode-Zeichen werden jedoch nicht ersetzt, aber dennoch codiert:

b'Br\xc3\xbcckenspinne' 

Können Sie mir sagen, wie ich tatsächlich Unicode-Zeichen zu beseitigen? (Ich benutze ersetzen für Testzwecke, ich beabsichtige, 'xmlcharrefreplace' später zu verwenden. Um ganz ehrlich zu sein, möchte ich die Unicode-Zeichen zu ihrem xmlcharref konvertieren, alles als eine Zeichenfolge behaltend).

Vielen Dank.

Antwort

2

utf-8 Codierung kann das Zeichen darstellen ü; kein Ersatz erfolgt.

Verwenden Sie eine andere Codierung, die das Zeichen nicht darstellen kann. Zum Beispiel ascii:

>>> 'Brückenspinne'.encode("ascii", errors='replace') 
b'Br?ckenspinne' 

>>> 'Brückenspinne'.encode("ascii", errors='xmlcharrefreplace') 
b'Brückenspinne'