我在openshift中有一个django 1.5,python 2.7应用程序,我得到一个带有非ascii字符的DjangoUnicodeDecodeError,比如ç,á,ã..
我花了几个小时试图解决这个问题(我是python,django和openshift的初学者)
它不是在本地发生的,只是在openshift云服务器中。
有没有办法通过ssh解决这个问题?或任何其他..
这是printstack:
Request Method: POST
Request URL: ----
Django Version: 1.5
Exception Type: DjangoUnicodeDecodeError
Exception Value:
'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128). You passed in <django.utils.functional.proxy object at 0x7f10ccfde9d0> ()
Exception Location: /var/lib/openshift/.../python/virtenv/lib/python2.7/site-packages/Django-1.5-py2.7.egg/django/utils/encoding.py in force_text, line 115
Python Executable: /var/lib/openshift/.../python//virtenv/bin/python
Python Version: 2.7.5
Python Path:...
谢谢,
罗伯特。
答案 0 :(得分:1)
我最近在我的机器上遇到了类似的问题,我通过使用unicode文字+ smart_text解决了这个问题:
from __future__ import unicode_literals
from django.utils.encoding import smart_text
safeText = smart_text('this is my tetxt : %s' % someVaribleHoldingTextData)
或者,您可能需要将从文件读取的数据解码为特定的字符集:
theFile = open(path, 'r')
safeData = theFile.read().decode('utf-8')
编码是一个难题......你必须尝试,然后再试一次:P