Python Unicode未在Django Rest Framework中呈现Chrome中的可浏览API
我正在尝试使用django rest framework 3.1.3的可浏览API显示SQLite数据库中的unicode值Python Unicode未在Django Rest Framework中呈现Chrome中的可浏览API,python,django,unicode,django-rest-framework,content-type,Python,Django,Unicode,Django Rest Framework,Content Type,我正在尝试使用django rest framework 3.1.3的可浏览API显示SQLite数据库中的unicode值u'\u20b9' 我没有得到期望值₹对于货币符号,它返回以下内容,具体取决于浏览器: Chrome 49.0.2623.110(64位): 可浏览的API:”(空白字符串) JSON: Safari 9.1(10601.5.17.4): 可浏览的API:₹ JSON: 卷曲: JSON:₹ 如何使其始终显示₹?您可能会错过Django中可用的系统语言设置。根据您的堆栈(a
u'\u20b9'
我没有得到期望值₹代码>对于货币符号,它返回以下内容,具体取决于浏览器:
Chrome 49.0.2623.110(64位):
可浏览的API:”
(空白字符串)
JSON:
Safari 9.1(10601.5.17.4):
可浏览的API:₹代码>
JSON:
卷曲:
JSON:₹代码>
如何使其始终显示₹代码>?
您可能会错过Django中可用的系统语言设置。根据您的堆栈(apache或supervisor会删除默认系统设置),您需要明确定义它
原因是,unicode是Python内部特定的。您需要将unicode编码为输出格式。可以是utf8或任何iso代码
请注意,这不同于头文件#-*-编码:utf-8-*-
,其目标是使用utf-8字符集将文件解码为unicode。这并不意味着该文件代码中的任何输出都将使用utf8进行转换。我在settings.py
中使用了sys.setdefaultencoding('utf8')
,并且UnicodeEncodeError
消失了,但我仍然得到了“–CharStyle”
,而不是₹
iirc,这将不起作用,因为已经完成了一些初始化,我已经看到setdefaultencoding需要一些技巧才能发挥作用的地方(但我不记得是哪些)。我在问题中添加了一些附加信息,在这一点上,我相信这是一个浏览器呈现/标题问题,因为我可以看到预期的unicode₹代码>向URL发出CURL请求时。可能与这是一个浏览器错误有关。