我试图在python中运行命令u'\xe1'.decode("utf-8")
,我收到此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings/utf_8.py", line 16, in decode
return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 0: ordinal not in range(128)
为什么当我将utf-8作为第一个参数传递时,我试图解码ascii?除此之外,有什么方法可以从á
获取角色u'\xe1'
并将其保存在字符串中?
答案 0 :(得分:1)
decode
将获取一个字符串并将其转换为unicode(例如:"\xb0".decode("utf8") ==> u"\xb0"
)
encode
将使用unicode并将其转换为字符串(例如:u"\xb0".encode("utf8") ==> "\xb0"
)
与字符串的呈现无关......它主要是内部表示
尝试
print u"\xe1"
(你的终端将需要支持unicode(空闲将工作... dos终端不是那么多))
>>> print u"\xe1"
á
>>> print repr(u"\xe1".encode("utf8"))
'\xc3\xa1'
>>> print repr("\xc3\xa1".decode("utf8"))
u'\xe1'