首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 对服务器返回数据编码进行判断之chardet

Python 对服务器返回数据编码进行判断之chardet

作者头像
授客
发布2019-09-11 15:08:01
6930
发布2019-09-11 15:08:01
举报
文章被收录于专栏:授客的专栏授客的专栏

测试环境

Win764Bit

chardet-2.3.0

下载地址1:https://pypi.python.org/pypi/chardet/

下载地址2:http://pan.baidu.com/s/1nu7XzjN

演示代码

#!/usr/bin/env python

# -*- coding:utf-8 -*-
__author__ = 'shouke'


import urllib.request
import chardet
import urllib.parse


if __name__ == '__main__':

    params =  urllib.parse.urlencode({"code":"utf-8","q":"手机", "callback":"cb"})

    url = 'https://suggest.taobao.com/sug?' + params

    request = urllib.request.Request(url)

    response = urllib.request.urlopen(request)

    response = response.read()

    print(response)

    encoding = chardet.detect(response)['encoding']

    print('正在对服务器返回body进行解码')

    if encoding == 'GB2312':

        body = response.decode('gbk')  # decode函数对获取的字节数据进行解码

        print(body)

    elif encoding == 'utf-8':

        body = response.decode('utf-8')

        print(body)

    elif encoding == 'ascii':

        body = response.decode('unicode_escape')

        print(body)

    else:

        print('解码失败,未知编码:%s,不对body做任何解码' % encoding)

运行结果

Python <wbr>对服务器返回数据编码进行判断之chardet
Python <wbr>对服务器返回数据编码进行判断之chardet
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-12-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档