【问题标题】:Ascii codec can't encode characterAscii 编解码器无法编码字符
【发布时间】:2016-02-12 17:19:19
【问题描述】:

我正在运行带有文本输入的 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”编解码器无法编码字符)。

我该如何解决这个问题?

【问题讨论】:

    标签: python unicode flask ascii


    【解决方案1】:

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

    注意:

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

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

    【讨论】:

    • 谢谢!这是一个相当简单的解决方案,我没有看到。
    • 乐于助人。如果它对您有用,可以免费“接受”答案。干杯。
    猜你喜欢
    • 2015-10-21
    • 2010-12-11
    • 2012-07-02
    • 2010-12-11
    • 1970-01-01
    • 2018-05-05
    • 2019-02-03
    相关资源
    最近更新 更多