Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django和uwsgi Unicodeencodeer上的区域设置错误_Python_Django_Localization_Uwsgi - Fatal编程技术网

Python django和uwsgi Unicodeencodeer上的区域设置错误

Python django和uwsgi Unicodeencodeer上的区域设置错误,python,django,localization,uwsgi,Python,Django,Localization,Uwsgi,编辑:我刚刚意识到,当我不想打印来控制那个变量时,它是有效的。为什么? 我遇到了一个与使用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.

编辑:我刚刚意识到,当我不想打印来控制那个变量时,它是有效的。为什么?

我遇到了一个与使用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)
(('en_US','UTF-8'),'UTF-8')
(‘en_US’、‘UTF-8’)
选项u值d
错误
打印“标签”,标签
UnicodeEncodeError:“ascii”编解码器无法对位置5中的字符u'\u015b'进行编码:序号不在范围内(128)
当我在生产环境中通过runserver运行应用程序时,问题不存在。
Django 1.6.5 Python 2.7.6 Ubuntu 14.04 uWSGI 2.0.5.1

适用于需要使用unicode的Django,如表单等。。您必须在要保存的unicode的前导中设置一个
u
!在保存unicode的任何位置执行此操作!
在这种情况下,我认为它是
(选项标签)

我在这里找到了答案:


意识到控制台要对该错误负责,因此在uwsgi配置文件中导出额外的env变量可以解决问题:
env=PYTHONIOENCODING=UTF-8

此命令是否有错误<编码>打印“选项值”,选项值打印“标签”,标签失败(编辑)请回答!答案是肯定的!label变量的值失败,不是字符串“label”您是否确实尝试过此操作:
打印u'label',label
?打印u'label',label UNICODEENCODEER错误:“ascii”编解码器无法对位置5中的字符u'\u015b'进行编码:序号不在范围内(128)因此,因为当您想在窗体等中使用uni代码时,django中的
标签是
'option\u value'
。。您必须在要保存的unicode的前导中设置一个
u
!在保存unicode的任何位置执行此操作!