首页 / PYTHON / python基础|字符编码
python基础|字符编码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python基础|字符编码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1628字,纯文字阅读大概需要3分钟。
内容图文
任何一个程序想要运行,必须先有硬盘加载到内存,然后由cpu去内存取只执行。运行着的应用程序的数据,必须在内存运行。python运行文件的三步,首先把python文件解释器读取到内存上,然后应用程序代码文本文件读取到内存上,最后python解释器对程序代码进行编译成计算机识别的代码。
字符编码
字符编码和文本文件有关。文字,字母,数字符号等都属于字符。常见的文本文件,记事本,word文件等。但是图片和视频不属于文本文件。
我们写的文件要想之后还可以查看,文件就要存储到硬盘中。其过程就是计算机将字符对应字符编码表翻译成二进制数存入硬盘。早期计算机使用英文字符,存入硬盘占用1Btes,也就是八位二进制(8Bts),
输入字符 >>>>>>(字符编码表)>>>>> 二进制数
# 存储单位小知识 8bits = 1Bytes 1024Byes = 1kb 1024kb = 1Mb 1024Mb = 1GB 1024GB = 1T 1024T = 1P
后来各个国家也是用计算机,但是使用英文十分不方便。各个国家都绘制自己的编码表,中国是用GBK编码表,中文字符占2Btes。日本使用shift-jis编码表,韩国使用ECU-KR编码表。
万国码unicode
万国码unicode出现,它可以兼容各国语言,各国语言都可以识别。unicode编码统一所有字符都占2Btes。但是这种编码也有缺点,就是浪费存储空间,程序运行效率低。在此基础上出现了优化的utf-8编码。utf-8编码会将unicode用文字夫由原来的2Btes变成1Btes,将中文的2Btes变成3Btes存入硬盘中。
对于存入文件的过程可以理解为:
数据保存到硬盘
1, 内存中的unicode格式二进制数据数字 >>>>> (encod) >>>> utf-8
硬盘中的数据有硬盘读到内存
1, 硬盘中的utf-8格式的二进制数据 >>>>解码(decode) >>>unincode格式的二进制数据
要明白的是用户输入分时候,无论输入什么字符都能够兼容万国字符。其他国家的数据有硬盘读到内存的时候unicode与其他各个国家的编码都有对应关系。
在python2默认使用ASCII码(因为在开发pyhon2解释器时uniocode还没有盛行),而在python3中默认使用的是utf-8。python3字符串默认使用unicode编码格式的二进制数
文件头
在文件中的字符编码运行之前,要明白的是,文件以什么格式存入硬盘就应该以什么格式读出来。可以想象这样一个场景,发密电码,发送者以一种编码方式发出,解码者就必须一相同编码方式才能解密。如果不是,那么将会得到一堆乱码。计算机也是如此
# 以gbk格式存入编码,以utf-8格式解码 a = ‘学习‘ # 数据字符串‘学习’ a1 = a.encode(‘gbk‘) # 以gbk格式存入 a2 = a1.decode(‘utf-8‘) # 以utf-8格式读出 print(a2) # 结果是可以读但是无法解码,导致乱码 ?? # 以gbk格式存入,以gbk格式读出 a = ‘学习‘ # 数据字符串‘学习’ a1 = a.encode(‘gbk‘) # 以gbk格式存入 a2 = a1.decode(‘gbk‘) # 以utf-8格式读出 print(a2) 学习
总结:
在读取文件的时候,如果乱码,很大可能就是读的时候与存入编码格式不同所致
(在文件看到:# coding:utf-8 ,它的意思告诉解释器用utf-8编码解码。)
原文:https://www.cnblogs.com/huaiXin/p/11140478.html
内容总结
以上是互联网集市为您收集整理的python基础|字符编码全部内容,希望文章能够帮你解决python基础|字符编码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。