Python中的bangla编码 - UnicodeDecodeError:'ascii'编解码器无法解码位置0中的字节0xe0:序号不在范围内(128)

时间:2015-05-16 12:10:04

标签: python python-2.7 utf-8

如何将内容“আপনার”存储为UTF-8“আপনার”?我尝试过以下方法:

>>> content = "আপনার"
>>> content
'\xe0\xa6\x86\xe0\xa6\xaa\xe0\xa6\xa8\xe0\xa6\xbe\xe0\xa6\xb0'
>>> content = "আপনার".encode("UTF-8")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
>>> content = "আপনার".decode("UTF-8")
>>> content
u'\u0986\u09aa\u09a8\u09be\u09b0'

1 个答案:

答案 0 :(得分:2)

第二个可行,但您必须使用print content而不是content

>>> content = "আপনার".decode("UTF-8")
>>> print content
আপনার

__str____repr__

这是对象的str__repr__格式之间的差异。第一个是人类可读的,第二个是暴露内部并且对象是唯一的。您可以在Difference between __str__ and __repr__ in Python中阅读更多内容。

字符串表示

>>> print unicode(content)
আপনার

__repr__表示

>>> print content.__repr__()
u'\u0986\u09aa\u09a8\u09be\u09b0'