簡體   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