【发布时间】:2012-05-20 16:10:15
【问题描述】:
我在尝试将字符串编码为 UTF-8 时遇到了一些问题。我尝试了很多东西,包括使用string.encode('utf-8') 和unicode(string),但我得到了错误:
UnicodeDecodeError:“ascii”编解码器无法解码位置 1 的字节 0xef:序数不在范围内 (128)
这是我的字符串:
(。・ω・。)ノ
我不知道出了什么问题,知道吗?
编辑:问题是按原样打印字符串不能正确显示。另外,当我尝试转换它时出现这个错误:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> s = '(\xef\xbd\xa1\xef\xbd\xa5\xcf\x89\xef\xbd\xa5\xef\xbd\xa1)\xef\xbe\x89'
>>> s1 = s.decode('utf-8')
>>> print s1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-5: ordinal not in range(128)
【问题讨论】:
-
这只是一个正常插入的字符串。当我尝试打印它时也会发生同样的情况。
-
我在 pip install 时遇到了同样的情况,并从这里修复它:[install some devel][1] [1]: stackoverflow.com/questions/17931726/…