Python Ascii编解码器可以';t编码字符

Python Ascii编解码器可以';t编码字符,python,unicode,flask,ascii,Python,Unicode,Flask,Ascii,我正在运行一个带有文本输入的Flask web服务,但现在我遇到了一个问题,即文本输入有时包含ASCII字符集中不包含的字符(错误示例:“(错误:未提供文本)‘ASCII’编解码器无法对位置20处的字符u’\u2019’进行编码) 我的Flask web服务代码(有点)如下所示: class Classname(Resource): def __init__(self): self.reqparse = reqparse.RequestParser() sel

我正在运行一个带有文本输入的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字符串转换为unicode,但没有成功(错误:“unicode”对象不可调用)。我还试图补充:

text = re.sub(r'[^\x00-\x7f]',r' ',text)
在规则之后

text = args['text']
但这也给了我同样的错误(“ascii”编解码器不能对字符进行编码)


如何解决此问题?

您是否尝试过从
self.reqparse.add_参数('text',type=str,required=True,help='Error:未提供文本')中删除
type=str

注意:

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


来源:

谢谢!这是一个相当简单的解决方案,我没有看到。很乐意帮忙。如果答案对你有效,你可以自由地“接受”。干杯