[英]How to response a unicode string in flask restful api?
我正在使用flask.ext.rest来构建一个api。 我想要返回一些中文字符串。 但是,每次我收到"\爱"
(这是一个长度为8的字符串)。 我应该怎么爱
?
from flask import Flask
from flask.ext.restful import reqparse, abort, Api, Resource
class E2C(Resource): # English to Chinglish
def get(self):
chinese = u'爱'
type(chinese) # unicode
return chinese
get
方法应该返回一个Response实例。 看到这里的文档 。
代码应该是:
from flask import Flask, make_response
from flask.ext.restful import reqparse, abort, Api, Resource
class E2C(Resource): # English to Chinglish
def get(self):
chinese = u'爱'
type(chinese) # unicode
return make_response(chinese)
'\\ u7231'确实是你寻找的角色,问题在于通过你用来显示它的任何设备渲染那个角色。
因此,您的浏览器页面可能需要包含meta
标记来呈现UTF-8
<head>
<meta charset="UTF-8">
</head>
另一方面,cURL为你提供了一个快速谷歌,听起来它默认收到unicode char ok所以这只是你用来存储/显示结果的问题...你需要阻止终端或文件系统或程序,或者你正在使用的任何东西,将unicode char转换回它的数字表示。 因此,如果将其保存到文件,则需要确保该文件获得utf-8字符编码; 如果你将它渲染到屏幕,你需要确保你的屏幕能够并期待它。
make_response实际上可以解决问题。
我的情况略有不同,因为我有一个字典对象, 但尚未编码为utf-8 。 所以我修改@Xing Shi的解决方案,以防有其他人遇到类似的问题。
def get(self):
return make_response(
dumps({"similar": "爱“, "similar_norm": ”this-thing"},
ensure_ascii=False).decode('utf-8'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.