Django 使用uwsgi 部署在 nginx上,中文乱码
众所周知,python3相比python2的一个最大的改变就是str统一是unicode编码的,带有中文的字符串再也不用写成 u'中文' 这么麻烦,但是最近却遇到了 print('中文') 报错。
1 |
UnicodeEncodeError: 'ascii' codec can't encode characters in position 157-158: ordinal not in range(128) |
这个问题只发生在生产环境上,本地环境没有问题。那么首先考虑的就是生产环境和本地环境差别在哪里了-----启动方式。
生产环境上使用了 uWSGI 来做服务器处理web请求,而本地环境不是。
生产环境系统中尝试打印出 stdout 的编码:
1 2 3 4 |
import sys print(sys.stdout.encoding) # ANSI_X3.4-1968 |
解决方法:
在 uwsgi 的配置文件中加入一句,用来设置python使用的编码格式。
1 |
env = LC_CTYPE=zh_CN.utf-8 |
2019-7-7 20:31:8
版权声明:
作者:龙魂
链接:https://blog.wlzs.cn/django-%e4%bd%bf%e7%94%a8uwsgi-%e9%83%a8%e7%bd%b2%e5%9c%a8-nginx%e4%b8%8a%ef%bc%8c%e4%b8%ad%e6%96%87%e4%b9%b1%e7%a0%81/
文章版权归作者所有,未经允许请勿转载。
THE END