python - Heroku 上 Django 中的编码错误

标签 python django heroku encoding utf-8

我看到一些主题,人们说使用此命令来解决问题

heroku config:add LANG=en_US.UTF-8

我已经这样做了,但仍然遇到编码问题,就像这样

UnicodeEncodeError at /admin/controladoria/orgao/2/

'ascii' codec can't encode character u'\xe7' in position 23: ordinal not in range(128)

如果我尝试运行上面的命令,这就是我得到的......

daniel@daniel-VirtualBox: (dev *) $ heroku config:add LANG=en_US.UTF-8
Setting config vars and restarting rocky-hollows-8072... done, v11
LANG: en_US.UTF-8
daniel@daniel-VirtualBox: (dev *) $ heroku run bash
Running `bash` attached to terminal... up, run.7893
~ $ python
Python 2.7.6 (default, Jan 16 2014, 02:39:37) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'ascii'

在我的机器上,编辑了 sitecustomize.py

Python 2.7.5 (default, Mar 11 2014, 21:42:34) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

这应该发生吗?我知道如果我将默认编码放入 sitecustomize.py 中,我就不会遇到问题。

这在 Heroku 上应该如何发生?一旦我无法在 Heroku 上更改 sitecustomize,我该如何解决这个问题?

错误日志

Traceback:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  114.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
  432.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  99.                     response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  52.         response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
  198.             return view(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
  29.             return bound_func(*args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
  99.                     response = view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
  25.                 return func(self, *args2, **kwargs2)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/transaction.py" in inner
  339.                 return func(*args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/options.py" in change_view
  1233.                 self.log_change(request, new_object, change_message)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/admin/options.py" in log_change
  614.             object_repr=force_text(object),
File "/app/.heroku/python/lib/python2.7/site-packages/django/utils/encoding.py" in force_text
  108.                     s = six.text_type(bytes(s), encoding, errors)

Exception Type: UnicodeEncodeError at /admin/controladoria/orgao/2/
Exception Value: 'ascii' codec can't encode character u'\xe7' in position 23: ordinal not in range(128)

最佳答案

老问题,但我发现了同样的问题。

我的解决方案:我发现我的heroku的python Wax 2.x。

一切都很顺利,因为我告诉 heroku 使用 python 3.x(作为我的开发环境)。

为此,只需在项目的根目录中添加一个 runtime.txt 文件,然后选择正确的运行时:

python-3.4.3

如下所示:https://devcenter.heroku.com/articles/python-runtimes

关于python - Heroku 上 Django 中的编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025001/

相关文章:

Django Rest Framework 不接受 ArrayField POST

python - 在 QuerySet 中获得排名的最有效方法是什么?

go - 在 heroku 上部署 golang 应用程序,构建成功但应用程序错误

php - 在云上托管的 Laravel 应用程序上配置缓存服务器

python - “WSGIRequest”对象没有属性 'is_authenticated'

python - 检查 line 是否是 Python 中的时间戳

python - 外键问题

python - Heroku 中的 bson 更新后 Flask 应用程序损坏

python - 键入提示: Argument Of Type Class

python - 如何在 Python 中对 TSP 实现动态编程算法?