【发布时间】:2014-04-07 09:32:14
【问题描述】:
我有一个非常简单的环境:
In [64]: aa = '\xe1'
In [65]: aa
Out[65]: '\xe1'
In [66]: type(aa)
Out[66]: str
In [67]: u'\xe1'
Out[67]: u'\xe1'
In [68]: u'%s' % aa
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
/usr/lib/python2.7/dist-packages/django/core/management/commands/shell.pyc
in <module>()
----> 1 u'%s' % aa
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 0:
ordinal not in range(128)
我想做的就是把这个 aa 字符串转换成 unicode。我怎么能这样做?
在 db 中我有 unicode 字符串,如果 str 包含特殊字符,我无法生成结果 django 查询。使用 .encode('utf-8') 或 unicode(aa) 我得到了相同的 UnicodeDecodeError。
我也尝试过使用sys.setdefaultencoding,然后它可能会起作用,但它会杀死其他所有东西。
Python 版本:2.7.3
【问题讨论】:
-
每当我在 python 中处理 unicode 时,我倾向于参考:farmdev.com/talks/unicode 这是迄今为止我见过的如何在 python 2.7 中处理 unicode 的最佳解释。祝你好运
标签: python django unicode encoding