Home  >  Q&A  >  body text

python2.7 - python Flask post 数据 输出中文

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask import Flask
from flask import request
from flask import Response


app = Flask(__name__)

@app.route('/rtxim', methods=['POST'])
def rtxim_post():
    print str(request.get_data())
    return '%s' % (request.get_data() or 'null')
    
if __name__ == '__main__':
    app.run('0.0.0.0',port=4492)

request.get_data() 取到的值中文 被转码了,怎么转为原数据呢

例如 前台提交的中文 是 '往往', get_data() 输出的却是 %E5%BE%80%E5%BE%80; 如下

在控制台打印输出的中文是 %E5%BE%80%E5%BE%80
如何转为 正常的中文呢

PHP中文网PHP中文网2741 days ago256

reply all(2)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:16:26

    # coding=utf-8
    
    from flask import Flask
    from flask import request
    
    app = Flask(__name__)
    
    @app.route('/rtxim/', methods=['POST'])
    def rtxim_post():
        print request.form.get('name')
        return '%s' % request.form.get('name')
    
    if __name__ == '__main__':
        app.run('127.0.0.1',port=4492)

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:16:26

    @prolifes’ answer seems fine, why -1?

    By the way, let me tell you how to convert %E5%BE%80%E5%BE%80 into normal Chinese

    In [7]: s = '%E5%BE%80%E5%BE%80'
    
    In [8]: from urlparse import unquote
    
    In [9]: unquote(s)
    Out[9]: '\xe5\xbe\x80\xe5\xbe\x80'
    
    In [10]: unquote(s).decode('utf8')
    Out[10]: u'\u5f80\u5f80'
    
    In [11]: print unquote(s).decode('utf8')
    往往

    reply
    0
  • Cancelreply