【发布时间】:2014-07-22 12:51:13
【问题描述】:
编辑:我刚刚意识到,当我不尝试打印来控制该变量时,它可以工作。为什么?
我遇到了与使用 utf 字符显示字符串标签相关的问题。我在 uwsgi ini 文件中设置了 locale env,如下所示:
env =LC_ALL=en_US.UTF-8
env =LANG=en_US.UTF-8
在 wsgi.py 中:
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
当我运行应用代码时:
print (locale.getlocale(), locale.getpreferredencoding())
print locale.getdefaultlocale()
print "option_value", option_value
label = force_text(option_label)
print 'label', label #THIS FAILS
输出是:
(('en_US', 'UTF-8'), 'UTF-8')
('en_US', 'UTF-8')
option_value d
ERROR <stack trace>
print 'label', label
UnicodeEncodeError: 'ascii' codec can't encode character u'\u015b' in position 5: ordinal not in range(128)
当我在生产环境中通过 runserver 运行应用程序时,问题不存在。 Django 1.6.5 Python 2.7.6 Ubuntu 14.04 uWSGI 2.0.5.1
【问题讨论】:
-
是这个命令的错误吗?
print "option_value", option_value -
打印“标签”,标签失败(已编辑)
-
请回答!回答结果!
标签: python django localization uwsgi