Python发送Http请求时,中文乱码

发布时间:2019-09-09 08:46:32编辑:auto阅读(1958)

    解决方法

    先encode再quote。

    原理

    msg.encode('utf-8')是解决中文乱码问题。

    quote():假如URL的 name 或者 value 值中有『&』、『%』或者『=』等符号,就会有问题。所以URL中的参数字符串也需要把『&=』等符号进行编码,quote()就是对参数字符串中的『&=%』等符号进行编码。

    例子

    # -*- coding: UTF-8 -*-
    # python2.7
    from urllib import quote
    import requests
    
    def httpGet(sUrl):
        header = {}
        try:
            response=requests.get(sUrl, headers=header)
            sText = response.text
            return sText
        except BaseException:
            print BaseException
                
    def demo(msg):
        sEncodeMsg = quote(msg.encode('utf-8'))
        url = 'http://www.youdao.com/w/eng/' + sEncodeMsg
        print httpGet (url)
        
    demo(u'90%的数据') 
    




关键字