Python判断字符串编码以及编码的转换
转自:http://www.cnblogs.com/zhanhg/p/4392089.html
Python判断字符串编码以及编码的转换
判断字符串编码:
使用 chardet 可以很方便的实现字符串/文件的编码检测。尤其是中文网页,有的页面使用GBK/GB2312,有的使用UTF8,如果你需要去爬一些页面,知道网页编码很重要:
#!/usr/bin/env python
# -*- coding:utf-8 -*- import urllib, chardet if __name__ == '__main__':
html = urllib.urlopen('http://www.baidu.com').read()
print chardet.detect(html)
结果:
{'confidence': 0.99, 'encoding': 'utf-8'}
函数返回值为字典,有2个元素,一个是检测的可信度,另外一个就是检测到的编码。
编码转换:
先把其他编码转换为unicode再转换其他编码, 如utf-8转换为gb2312:
#!/usr/bin/env python
# -*- coding:utf-8 -*- import chardet if __name__ == '__main__':
str = raw_input("请输入地址:")
print chardet.detect(str) str1 = str.decode('utf-8')
str2 = str1.encode('gb2312')
print chardet.detect(str2)
结果:
请输入地址:你好
{'confidence': 0.7525, 'encoding': 'utf-8'}
{'confidence': 0.3598212120361634, 'encoding': 'TIS-620'}
结束语:
示例中使用到了chardet模块,所以需要先安装该模块才能按示例代码按步骤操作得到相应的结果。
Python判断字符串编码以及编码的转换的更多相关文章
- python判断字符串
python判断字符串 s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小 ...
- python判断字符串是否为空的方法s.strip()=='' if not s.strip():
python 判断字符串是否为空用什么方法? 复制代码 s=' ' if s.strip()=='': print 's is null' 或者 if not s.strip(): p ...
- python 判断字符串中是否只有中文字符
python 判断字符串中是否只有中文字符 学习了:https://segmentfault.com/q/1010000007898150 def is_all_zh(s): for c in s: ...
- python判断字符串中是否包含子字符串
python判断字符串中是否包含子字符串 s = '1234问沃尔沃434' if s.find('沃尔沃') != -1: print('存在') else: print('不存在' ...
- python判断字符串是否是json格式方法分享
python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: ...
- Python中字符串/字典/json之间的转换
import json #定义一个字典d1,字典是无序的 d1 = { "a": None, "b": False, "c": True, ...
- Python判断字符串是否为字母或者数字
严格解析:有除了数字或者字母外的符号(空格,分号,etc.)都会Falseisalnum()必须是数字和字母的混合isalpha()不区分大小写 str_1 = "123" str ...
- python判断字符串是否为空和null
1.使用字符串长度判断 len(s==0)则字符串为空 test1 = '' if len(test1) == 0: print('test1为空串') else: print('test非空串,te ...
- 【python】-- 字符串、字符编码与转码
字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可:访问子字符串,可以使用方括号来截取字符串: var1 ...
随机推荐
- 在用mvn编译java文件时遇到问题
问题一:找不到加载主类 为什么会出现这类加载失败的问题那??? 一看这个问题就是环境变量配置有问题,找到问题解决就ok了!!! 问题二:无法用mvn编译java文件 这个问题是由于pom.xml文件出 ...
- volatile关键字在多线程中的作用
- NoSQL概述
- c++对象模型探索(一)
粗略阅读了<深度探索c++对象模型>一书后,对c++对象底层的内存布局有了一些了解,但同时,也产生了一些疑惑: 1.将子类指针用dynamic_cast转成父类指针之后,其虚表指针会相应变 ...
- ListView里面嵌套CheckBox
布局文件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:andro ...
- onRetainNonConfigurationInstance方法状态保存
onRetainNonConfigurationInstance方法作用于ONSAVEINSTANCE类似,但是能保存更多的信息,可以使用getLastNonConfigurationInstance ...
- java输入输出--I/O操作基础知识学习
一.java的I/O流 1. 输入流(字节流和字符流,字节流操作的数据单元是8位的字节,字符流操作的是16位的字符)(InputStream 和Reader作为基类) 2.输出流(字节流和字符流,字节 ...
- 洛谷P3328(bzoj 4085)毒瘤线段树
题面及大致思路:https://www.cnblogs.com/Yangrui-Blog/p/9623294.html, https://www.cnblogs.com/New-Godess/p/45 ...
- iOS 本地加载js文件
#import "RootViewController.h" @interface RootViewController ()<UIWebViewDelegate> @ ...
- 激光SLAM Vs 视觉SLAM
博客转载自:https://www.leiphone.com/news/201707/ETupJVkOYdNkuLpz.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...