字符编码

程序执行的三大核心硬件:

CPU,内存,硬盘

正常执行一个程序的要点:

 1.将硬盘中的数据读取内存

 2.由cpu读取内存中的数据进行执行

 3.在执行程序时,生成的数据优先存入内存

python解释器执行一个py文件过程:

如果么有python解释器,py文件就是一个文本文件,执行py文件,先执行python解释器

1)将python解释器的代码由硬盘读入内存

2)再将py文件以普通文本文件格式由硬盘读入内存

3)python解释器去内存读取py文件的数据

4)识别python语法,执行相应的操作

ps:任意的文本编译器执行,前面两步一样

字符:是世界上一切的文字,语言

将人类的文字,存入内存和硬盘中:

人类字符 ——》 字符编码表——》计算机二进制

字符编码表

ASCII码表 (美)

用八位二进制来代表一个英文字符

八位二进制,最多表示255位

八位二进制 = 8bit

8 bit = 1 bytes

1024B =1MB

1024MB = 1G

1024GB = 1TB

1024TB = 1PB

GBK(中)

用两个bytes来代表一个字符,兼容英文字符

shift(日本)

fuck(韩国)

unicode: 万国码

   为了兼容所有的国家的字符

  所有的字符都是用2bytes

缺点:

1.占用存储空间

2.io次数增加,程序运行速度变慢

utf8

只用Unicode对应:

所有的英文字符用一个bytes表示:

  中文 用三个bytes

在unicode二进制数据存入硬盘的时候,做优化:

现在的计算机:

内存:unicode

硬盘:uft-8

(内存)Unicode二进制——》编码(encode)——》硬盘utf-8二进制字符

硬盘utf-8二进制字符——》解码(decode)——》unicode二进制

保证不乱码的核心:

  用什么编码存的数据,就用什么编码取出来

1.用户不论输入的是什么字符,存入内存,unicode都可以兼容

2.硬盘中无论是什么编码的文件,读到内存,都可以兼容unicode

数据传输:

优先以自己本国的语言

python2:

  默认的字符编码ASCII码

python3:

默认的utf-8

文件头:

  # coding = utf—8

  用英文字符,是为了让所有的计算机都可以识别

pycharm默认的字符编码:

utf-8

中国的windows操作系统默认字符编码:

gbk

x = '你好美'                         
res = x.encode('utf-8')           
print(res)                        
res1 = res.decode('utf-8')        
print(res1)                       


b'xe4xbdxa0xe5xa5xbdxe7xbex8e'
你好美

 

原文地址:https://www.cnblogs.com/godlover/p/11813148.html