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获取Linux系统的各种信息
Jul 10 Python
跟老齐学Python之玩转字符串(1)
Sep 14 Python
Python中处理字符串的相关的len()方法的使用简介
May 19 Python
python 循环while和for in简单实例
Aug 16 Python
分享几道你可能遇到的python面试题
Jul 24 Python
Python3实现统计单词表中每个字母出现频率的方法示例
Jan 28 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
详解python pandas 分组统计的方法
Jul 30 Python
Python队列、进程间通信、线程案例
Oct 25 Python
pytorch标签转onehot形式实例
Jan 02 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Docker如何部署Python项目的实现详解
Oct 26 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
php获取301跳转URL简单实例
2013/12/16 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
用jscript实现新建word文档
2007/06/15 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
解析python实现Lasso回归
2019/09/11 Python
Python爬取豆瓣视频信息代码实例
2019/11/16 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
Gap英国官网:Gap UK
2018/07/18 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
幼师自荐信
2013/10/26 职场文书
党员思想汇报范文
2013/12/30 职场文书
质检部经理岗位职责
2014/02/19 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
检举信的格式及范文
2014/04/04 职场文书
企业标语大全
2014/07/01 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
2019年工作总结范文
2019/05/21 职场文书
导游词之太湖
2019/10/08 职场文书
MongoDB支持的数据类型
2022/04/11 MongoDB