python使用chardet判断字符串编码的方法


Posted in Python onMarch 13, 2015

本文实例讲述了python使用chardet判断字符串编码的方法。分享给大家供大家参考。具体分析如下:

最近利用python抓取一些网上的数据,遇到了编码的问题。非常头痛,总结一下用到的解决方案。

linux中vim下查看文件编码的命令 set fileencoding
python中一个强力的编码检测包 chardet ,使用方法非常简单。linux下利用pip install chardet实现简单安装

import chardet
f = open('file','r')
fencoding=chardet.detect(f.read())
print fencoding

fencoding输出格式 {'confidence': 0.96630842899499614, 'encoding': 'GB2312'} ,只能判断是否为某种编码的概率。比较准确的结果了。输入参数为str类型。

了解python中str的编码后可以利用decode和encode来实现编码的转换。

一般流程是str利用decode方法根据str的编码将其解码为unicode字符串类型,然后利用encode根据特定的编码将unicode字符串类型转换为特定的编码。python中str和unicode属于两种不同的类型,如下。

一般情况下window默认编码gbk,linux默认编码utf8
python编程中 系统编码,python编码,文件编码 的概念。

系统编码:默认写源码的编辑器的编码方式。它代表源码文件内的所有内容都是根据词方式编码成二进制码流。存入到磁盘中的。linux下通过locale命令查看。

python编码:指python内设置的解码方式。如果不设定的话,python默认的是ascii解码方式。如果python源代码文件中不出现中文的话,这个地方怎么设定应该不会问题。

设定方法:在源码文件开头(一定是第一行):#-*-coding:UTF-8-*-,源码文件的设置解码方式是UTF-8 或者 

import sys
reload(sys)
sys.setdefaultencoding('UTF-8')

文件编码:文本的编码方式,linux下vim利用set fileencoding查看。

一般情况下输出乱码的原因就是 没有按照系统解码的方式进行编码。

比如print s, s类型为str,linux系统下系统默认编码为utf8编码,s在输出前就应该编码为utf8。如果s为gbk编码就应该这样输出。print s.decode('gbk').encode('utf8')才能输出中文。

window下面情况相同,window默认编码为gbk编码,所以s输出前必须编码为gbk。

python处理中一般处理unicode类型。这样输出前直接编码即可。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
Python编程之event对象的用法实例分析
Mar 23 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
Oct 22 Python
Python编程深度学习计算库之numpy
Dec 28 Python
使用Python+wxpy 找出微信里把你删除的好友实例
Feb 21 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
Python常用编译器原理及特点解析
Mar 23 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Python发送邮件实现基础解析
Aug 14 Python
Python实现智慧校园自动评教全新版
Jun 18 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 #Python
python实现根据窗口标题调用窗口的方法
Mar 13 #Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 #Python
Python实现windows下模拟按键和鼠标点击的方法
Mar 13 #Python
Python实现测试磁盘性能的方法
Mar 12 #Python
Python解析xml中dom元素的方法
Mar 12 #Python
Python实现Tab自动补全和历史命令管理的方法
Mar 12 #Python
You might like
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
Thinkphp5行为使用方法汇总
2017/12/21 PHP
jquery JSON的解析方式
2009/07/25 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
2016/11/29 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
python向图片里添加文字
2019/11/26 Python
python opencv根据颜色进行目标检测的方法示例
2020/01/15 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
python线程池如何使用
2020/05/28 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
鼠标滚轮事件和Mac触控板双指事件
2019/12/23 HTML / CSS
找到不普通的东西:Bonanza
2016/10/20 全球购物
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
服装设计行业个人的自我评价
2013/12/20 职场文书
面试后的感谢信范文
2014/02/01 职场文书
高考备战决心书
2014/03/11 职场文书
班主任寄语大全
2014/04/04 职场文书
2014年安全生产大检查方案
2014/05/13 职场文书
运动会标语
2014/06/21 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
工作经历证明范本
2015/06/15 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python