如何在python中从西班牙语进行编码和解码

时间:2014-01-05 15:08:36

标签: python python-2.7 unicode encoding

我有以下用python 2.7编写的代码

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

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

这会引发以下错误:

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

任何帮助表示感谢,提前谢谢

2 个答案:

答案 0 :(得分:6)

u

之前添加"
>>> _string = u"años luz detrás"
>>> print _string.encode("utf-8")
años luz detrás

这样做。

答案 1 :(得分:3)

在Python 2中,字符串文字""创建一个字节串。然后在字节串上调用.encode("utf-8"),在执行ascii之前,Python首先尝试使用默认字符编码(.encode("utf-8"))将其解码为Unicode字符串。

u""创建Unicode字符串。它会将UnicodeDecodeError修复为@Bleeding Fingers suggested

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

如果重定向stdout,则可能导致UnicodeEncodeError。在这种情况下设置PYTHONIOENCODING环境变量。