django乱码问题

折腾了两天,终于解决了。返回json中文乱码

在网上那个找了很多方法,试了都比行,无意间看了一个方法。ok

1.就是mysql数据库本身编码的问题。有两个设置:

在mysql命令行环境输入:show variables like "%char%"; 

mysql5.5以上默认是这个样子的,不需要更改,通常就用utf8.如果你是别的编码可以改一下。网上特别多。

2.就是你创建的数据库,我用的mysql workbench6.3ce,选择utf8-deault collation认证就可以的.

查看你表的编码用utf8.

上面两种是由于数据库方面的问题一起的乱码。

3.如果你在views中直接返回中文的,他会提示错误

SyntaxError: Non-ASCII character '\xe7' views.py on line 27, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

这是因为python默认编码是ascii,所以你要在文件第一行添加一句话:#coding=utf-8。记住是第一行。

4.如果你返回的是json,用的是simplejson.dumps(obj,ensure_ascii=False)把红色的加上。

5.网上有说 

FILE_CHARSET = 'utf-8'

DEFAULT_CHARSET = 'utf-8'

这俩个不用设置的,django默认就是这两个。

6.我用的就是下面这一种。

data.decode('utf8').encode('gbk')

data就是你的数据。

根据自己的情况一个一个试试。

转载于:https://my.oschina.net/liuxinquan/blog/595417

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值