繁体   English   中英

如何在烧瓶restful api中响应unicode字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM