Ascii编解码器无法编码字符

时间:2015-11-11 15:13:10

标签: python unicode flask ascii

我正在运行带有文本输入的Flask Web服务,但现在我遇到的问题是文本输入有时包含ASCII字符集中未包含的字符(错误示例:“(错误:没有提供文字)'ascii'编解码器不能编码位置20'中的字符u'\ u2019'“)

我的Flask Web服务代码(有点)看起来像这样:

class Classname(Resource):
    def __init__(self):
       self.reqparse = reqparse.RequestParser()
       self.reqparse.add_argument('text', type=str, required=True, help='Error: no text provided')
       super(Classname,self).__init__()

    def post(self):
       args = self.reqparse.parse_args()
       text = args['text']
       return resultOfSomeFunction(text)

我已经尝试将ascii-string转换为unicode,但这不起作用(错误:'unicode'对象不可调用)。我还尝试添加:

text = re.sub(r'[^\x00-\x7f]',r' ',text)

之后的规则

text = args['text']

但是这也给了我同样的错误('ascii'编解码器不能编码字符)。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您是否尝试从type=str移除self.reqparse.add_argument('text', type=str, required=True, help='Error: no text provided')

  

注意:

     

默认参数类型是unicode字符串。这将是str   python3和python2中的unicode

来源:http://flask-restful-cn.readthedocs.org/en/0.3.4/reqparse.html