我得到了 views.py:
# -*- coding: UTF-8 -*-
def myview(request):
object = MyObject.objects.get(id = 1)
testvar = u"test %s" % object.myfield
我得到了错误:
UnicodeDecodeError at /myurl
'ascii' codec can't decode byte 0xc4 in position 1: ordinal not in range(128)
Unicode error hint
The string that could not be encoded/decoded was: J������
J������ - 我的字段值 在数据库中这个字段是 utf8_bin。 在模型中这个字段是 CharField
sys.getfilesystemencoding() #- UTF-8
sys.getdefaultencoding() #- ascii
sys.getdefaultencoding() #- ascii
locale.getdefaultlocale() #- ('en_US', 'UTF-8')
locale.getlocale() #- (None, None)
python 2.7.6 Django 1.5.8
我也试过:
object.myfield.decode("utf8")
出现错误:
UnicodeEncodeError at /myurl
'ascii' codec can't encode characters in position 6-10: ordinal not in range(128)
我有这个对象的管理方面 - 一切都很完美,即使使用 utf-8 符号也是如此。
如果我打印出 object.myfield 的类型,那么我会得到:
<type 'str'>
最佳答案
试试这个
def myview(request):
object = MyObject.objects.get(id = 1)
testvar = u"test %s" % object.myfield.**decode('utf-8')**
关于Python/Django UnicodeDecodeError 'ascii' 编解码器无法解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27253236/