• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-23) 15次浏览 已收录 0个评论

问题产生

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

思路

(1)当遇到编码问题,首先想到了python的中文编码解决
(2)第一步不能解决后,把注意力回到nginx上

步骤

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

<code><span>import</span> sysreload(sys)sys.setdefaultencoding(<span>"utf-8"</span>)</code>

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

<code><span>from</span> django.core.serializers.json <span>import</span> jsoncontent = json.dumps(, ensure_ascii=<span>False</span>)response = HttpResponse(content, c>'application/json; charset=utf-8'</span>)<span>return</span> response</code>

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

<code><span>server</span> {        <span>listen</span><span>80</span>;        <span>server_name</span>  localost;        <span>charset</span> utf-<span>8</span>,gbk;        }</code>

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


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

总结

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


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

‘).addClass(‘pre-numbering’).hide(); $(this).addClass(‘has-numbering’).parent().append($numbering); for (i = 1; i <= lines; i++) { $本@文来源gao($daima.com搞@代@#码(网5搞gaodaima代码numbering.append($(‘

  • ‘).text(i)); }; $numbering.fadeIn(1700); }); }); </script>

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


    搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:nginx+django httpresponse返回中文编码问题

    喜欢 (0)
    [搞代码]
    分享 (0)
  • 发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址