您的位置:首页 > 理论基础 > 计算机网络

nginx+django httpresponse返回中文编码问题

2015-12-28 16:13 597 查看

问题产生

本机nginx做文件服务器(使用nginx-upload-module模块),使用django做应用服务器,当文件上传到nginx后,将处理后的文件信息反馈给django服务,django处理后回传response值。
在返回response值时候出现中文编码问题


思路

(1)当遇到编码问题,首先想到了python的中文编码解决

(2)第一步不能解决后,把注意力回到nginx上

步骤

一.python 整体编码,设置编码为
utf8


import sys
reload(sys)
sys.setdefaultencoding("utf-8")


二.python使用json的编码

尝试使用
simplejson
,在其中设置
ensure_ascii=False
,发现在django
1.7.8
中没有simplejson,而是直接是json。

from django.core.serializers.json import json

content = json.dumps(<jsonData>, ensure_ascii=False)
response = HttpResponse(content, content_type='application/json; charset=utf-8')
return response


三.当修改django中的编码没有效果时,就考虑是否是nginx中的编码问题

server {
listen       80;
server_name  localost;
charset utf-8,gbk;
}


其中设置编码为
utf-8,gbk


最后发现是nginx的编码产生的问题,问题解决。

总结

在使用python时候,编码问题是会经常遇到的,这个需要注意;在实际的问题解决中,需要对每个过程都要考虑到,就像这次开发中使用到nginx+django+python +shell,每个流程都要小心。

参考资料:

1./article/2365334.html

2./article/1283586.html

3.关键字:nginx 中文编码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: