2014-01-05 15 views
7

ich den folgenden Code in Python 2.7Wie kodieren und aus dem Spanischen in Python dekodieren

geschrieben haben
# -*- coding: utf-8 -*-  
import sys 

_string = "años luz detrás" 
print _string.encode("utf-8") 

dies führt den folgenden Fehler:

print _string.encode("utf-8") 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128) 

Jede Hilfe dankbar, danke im voraus

+0

Sie müssen nicht codieren, versuchen Sie nur "print _string" – Tisp

+0

mögliche Duplikate von [Python - 'Ascii' Codec kann Byte nicht dekodieren] (http://stackoverflow.com/questions/9644099/python-ascii- Codec-Kant-Dekodier-Byte) –

Antwort

6

Fügen Sie u vor dem "

hinzu

Dies würde tun.

3

In Python 2 erstellt ein Zeichenfolgenliteral "" eine Bytezeichenfolge. Dann rufen Sie .encode("utf-8") auf einer Bytestring, Python versucht zuerst, es in Unicode-Zeichenfolge mit einer Standardzeichencodierung (ascii) vor der Ausführung .encode("utf-8") zu dekodieren.

u"" erstellt Unicode-Zeichenfolge. Es wird den UnicodeDecodeError als @Bleeding Fingers suggested beheben.

# -*- coding: utf-8 -*-  
print u"años luz detrás" 

Es könnte zu UnicodeEncodeError führen, wenn stdout umgeleitet wird. Stellen Sie in diesem Fall die Umgebungsvariable PYTHONIOENCODING ein.

Verwandte Themen