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

11

我有以下代码是用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)

非常感谢您的帮助!


你不需要使用编码,只需尝试“print _string”。 - Tisp
可能是重复的问题:Python - 'ascii' codec can't decode byte - Bleeding Fingers
2个回答

9

" 前添加 u

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

这样就可以了。


4
在Python 2中,字符串字面值""创建一个字节串。然后,您可以在字节串上调用.encode("utf-8"),Python首先尝试使用默认字符编码(ascii)将其解码为Unicode字符串,然后执行.encode("utf-8")u""则会创建Unicode字符串。如@Bleeding Fingers提出的建议,这将解决UnicodeDecodeError问题。
# -*- coding: utf-8 -*-    
print u"años luz detrás"

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接