大话 Python:python 基础巩固 -- python 有多少种编码方式,如何检测编码方式并完成转码

大话 Python:python 基础巩固 -- python 有多少种编码方式,如何检测编码方式并完成转码,第1张

概述1、ASCII编码计算机最开始是由美国人发明使用的,当然ASCII编码也是由美国人发明的。所以它的产生主要是切合了美国的English语言,并且支持阿拉伯数字以及英文状态的标点符号。2、GB2312编码由于ASCII编码只能支持英文的编码使用,我们的中文不能实现计算机信息交流,所 1、ASCII 编码

计算机最开始是由美国人发明使用的,当然 ASCII 编码也是由美国人发明的。所以它的产生主要是切合了美国的 English 语言,并且支持阿拉伯数字以及英文状态的标点符号。

2、GB2312 编码

由于 ASCII 编码只能支持英文的编码使用,我们的中文不能实现计算机信息交流,所以产生了 GB2312 编码用来完成信息交流,它是中华人民共和国国家标准简体中文字符集。

3、Unicode 编码

各个国家地区在定义了自己的编码规范之后,那么在多种编码语言的系统中就会出现乱码的情况。韩国有韩国的编码、日本有日本的编码,这样就造成了多语言模式的混乱。因此,Unicode 编码就是为了解决这种情况,将所有的编码都统一到一个编码规范里面,即使是系统中出现多语言的处理也不会产生乱码的情况。

4、UTF-8 编码

正所谓先完成再完善,技术的发展更是如此。虽然使用 Unicode 编码解决了编码统一性的问题,但是它又会占用比较多的空间、并且在传输的过程中也会消耗相应的性能。所以, UTF-8 就随着历史的潮流诞生了,它可以使用更小的字节数完成语言编码的转换,大大的节省了空间和传输性能。

5、检测编码

检测编码是经常要在爬虫过程中使用的方式,对网络上抓取到的内容进行编码的检测判断,为后续的内容提取、数据清洗等提供可靠的依据。

1# 导入 chardet 库2import chardet3test_str = "Python 集中营"4# 使用 detect() 检测编码5print chardet.detect(test_str)

为了避免大文本的转换太过耗费时间,chardet 库还提供了另外一种检测方式,使用对象 UniversalDetector 的逐行检测方式会大大的提高效率。

1# 导入 UniversalDetector 对象 2from chardet.universaldetector import UniversalDetector 3 4# 定义获取编码函数 5def getEncodeInfo(file): 6    # 打开一个文件 7    with open(file, 'rb') as f: 8    # universaldetector 对象赋值 9    detector = UniversalDetector()10    for line in f.readlines():11        # 遍历检测编码12        detector.Feed(line)13        # 确保检测达到最小置信阈值为 True 时返回14        if detector.done:15            break16    # 检测完之后关闭源文本17    detector.close()18    # 返回编码19    return detector.result['enCoding']
6、编码转换

一般在创建 .py 的 python 文件时,如果没有在文件头执行编码格式,则默认情况下是 ASCII 编码,这个时候我们可以采用重新加载编码格式的方式进行处理。

 1# 导入 sys 库 2import sys 3# 重新加载 sys 系统库 4reload(sys) 5# 打印默认编码格式 6print sys.getdefaultenCoding()  7# 重新设置编码格式 UTF-8 8sys.setdefaultencoding('utf-8') 9# 打印重新设置的编码格式10print sys.getdefaultenCoding() 

如果是进行文本的编码格式转换时,一般的思路是先将现有文本进行解码、完成解码之后再重新编码。

1# 读取或定义文本2content = "文本内容"3# 文本解码 encode_info 为检测到的编码方式4content_decode = content.decode(encode_info,'ignore')5# 文本重新编码6content_encode_utf8 = content_decode.encode('utf-8')

更多精彩前往微信公众号【Python 集中营】,专注后端编程实战,原创文章每天更新!

总结

以上是内存溢出为你收集整理的大话 Python:python 基础巩固 -- python 有多少种编码方式,如何检测编码方式并完成转码全部内容,希望文章能够帮你解决大话 Python:python 基础巩固 -- python 有多少种编码方式,如何检测编码方式并完成转码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1188708.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存