热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nginx+djangohttpresponse返回中文编码问题

:本篇文章主要介绍了nginx+djangohttpresponse返回中文编码问题,对于PHP教程有兴趣的同学可以参考一下。

问题产生

本机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(, ensure_ascii=False)
respOnse= HttpResponse(content, c>'application/json; charset=utf-8')
return response

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

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

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


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

总结

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


参考资料:
1.http://blog.csdn.net/eengel/article/details/6198585
2.http://www.jb51.net/LINUXjishu/63475.html
3.关键字:nginx 中文编码

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering.fadeIn(1700); }); });

    以上就介绍了nginx+django httpresponse返回中文编码问题,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

  • 推荐阅读
    author-avatar
    hero-laiquwuz_82914c
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有