【发布时间】:2016-10-10 11:20:35
【问题描述】:
我正在使用 Django 1.10 和 Django Rest Framework 3。
这是我对GET方法(列表)的看法:
class JSONResponse(HttpResponse):
def __init__(self, data, **kwargs):
content = JSONRenderer().render(data)
kwargs['content_type'] = 'application/json'
super(JSONResponse, self).__init__(content, **kwargs)
@csrf_exempt
def news_list(request):
if request.method == 'GET':
news = News.objects.all()
serializer = Newsserializer(news, many=True)
return JSONResponse(serializer.data)
它工作得很好,并以Json 格式为我提供了所有行。
现在我想在我的专栏中使用UTF-8 字符。但是当我 GET 我所有的数据时,我看到像这样的字符 ★ 或 شسیببییبیسب。
我该如何解决这个问题?
【问题讨论】:
-
您是否在设置中设置了
UNICODE_JSON? django-rest-framework.org/topics/3.0-announcement/… -
它修复了
شسیببییبیسب,但现在看起来像这样:`\u0634\u0633\u06cc\u0628\u0628\u06cc\u06cc`。我应该知道什么? @kkasramvd -
就是这样。现在您有了具有标准表示的 unicode 字符串,您可以使用适当的编码来查看您的预期表示。尽管 python std-out 的默认编码是
utf8并且会显示解码后的字符串。如果你想在另一个控制台中表示字符串,你可能必须手动指定编码。 -
如果您使用的是 python2.X 并且您的最终标准输出是 python shell 或基于 unix 的终端,请执行以下操作:
print unicode(s, 'unicode-escape')。否则你需要解码字符串s.decode('utf8')。 -
@kasramvd 感谢重播。
标签: python django utf-8 django-rest-framework