json 序列化输出重音字符不正确,python / django
json serialization outputting accented character incorrectly, python / django
我有一个 Django 应用程序,使用 tasypie 序列化一些数据。
有个名字
"Glòria"
(带重音符 'o')在数据库中,但未正确序列化。在tasypie制作的json里面,出来的是
"Glòria"
序列化程序 class 如下所示:
import json as simplejson
class PrettyJSONSerializer(Serializer):
json_indent = 2
def to_json(self, data, options=None):
options = options or {}
data = self.to_simple(data, options)
return simplejson.dumps(data, cls=json.DjangoJSONEncoder,
sort_keys=True, ensure_ascii=False, indent=self.json_indent)
正在将 simplejson.dumps 上的属性更改为
ensure_ascii=True
returns 如下:
"Gl\u00f2ria"
我无法发表评论(目前..)所以我正在回复。 Python 2 对编码并不十分感兴趣。
Glòria 是以字节为单位的数据的正确 utf-8 编码表示。 Gl\u00f2ria 是 Python 2 unicode 字符串的内部表示。 json.dumps returns 一个 python unicode 字符串。您可能想要做的是将 json.dumps 的输出编码为 utf8.
import json
data = u'Gl\xf2ria'
encoded_data = json.dumps(s, ensure_ascii=False).encode("utf8")
print(encoded_data)
打印 Glòria。
编辑:只是为了确保
Glòria = Gl\xc3\xb2ria。使用 print 语句打印都应正确显示为 Glòria。
我有一个 Django 应用程序,使用 tasypie 序列化一些数据。
有个名字
"Glòria"
(带重音符 'o')在数据库中,但未正确序列化。在tasypie制作的json里面,出来的是
"Glòria"
序列化程序 class 如下所示:
import json as simplejson
class PrettyJSONSerializer(Serializer):
json_indent = 2
def to_json(self, data, options=None):
options = options or {}
data = self.to_simple(data, options)
return simplejson.dumps(data, cls=json.DjangoJSONEncoder,
sort_keys=True, ensure_ascii=False, indent=self.json_indent)
正在将 simplejson.dumps 上的属性更改为
ensure_ascii=True
returns 如下:
"Gl\u00f2ria"
我无法发表评论(目前..)所以我正在回复。 Python 2 对编码并不十分感兴趣。
Glòria 是以字节为单位的数据的正确 utf-8 编码表示。 Gl\u00f2ria 是 Python 2 unicode 字符串的内部表示。 json.dumps returns 一个 python unicode 字符串。您可能想要做的是将 json.dumps 的输出编码为 utf8.
import json
data = u'Gl\xf2ria'
encoded_data = json.dumps(s, ensure_ascii=False).encode("utf8")
print(encoded_data)
打印 Glòria。
编辑:只是为了确保
Glòria = Gl\xc3\xb2ria。使用 print 语句打印都应正确显示为 Glòria。