字符编码

1.内存和硬盘都是用来存储的。

CPU:速度快

硬盘:永久保存

 

 

 

 

python解释器程序的执行流程:

  1.打开python解释器

  2.告诉操作系统一个文件路径

  3.操作系统从硬盘读取文件到内存中

  4.cpu从内存中读取数据执行

 

2,什么是字符编码呢?

  计算器只能识别0和1,识别过程就是 字符--->翻译---->数字

  人类想要读懂计算机的内容,那么就要有可以表示字符与数字的对应关系的表。

第一阶段:计算机起源于美国,最早诞生ASCII码只支持英文

   ASCII:8位,二进制表示一个字符(1Bytes = 8bit)

第二阶段:为了能使用中文,中国人定制了GBK,

  GBK:

    • 只支持中文,英文
    • 8位,二进制表示一个英文字符(1Bytes = 8bit)
    • 16位,二进制表示一个中文字符(2Bytes = 16bit)      

  为了满足其他国家,各个国家纷纷定制了自己的编码,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr

 

第三阶段:各个国家有自己的标准,就会有避免冲突出现,多个国语言混合使用则会发生乱码,于是产生了Unicode

  Unicode:

    • 万国码具有兼容性
    • 通常2Bytes表示一个字符,而个别的是4Bytes 或 8Bytes      

  注意点:老的字符可以转换成Unicode,但是不能通过Unicode互相转换。

  

  但是Unicode生成的数据占用的空间大,于是产生了utf-8 ,而utf-8则是万国码的压缩版。

  utf-8:

    • 1Bytes表示一个英文 
    • 3Bytes表示一个中文  

  结论:

  1. 内存固定使用Unicode,我们可以改变存入内存硬盘的格式
  2. 文本文件存取乱问题:
    • 存乱:编码格式设置成支持文件内容的格式
    • 取乱:文件以什么编码格式写就以什么格式取  

    保证运行Python不乱码的核心法则:

            指定文件头:#coding:文件当初存入硬盘时所采用的编码格式

python2与python3的格式区别

  • Python3默认格式:utf-8
  • Python2默认格式:ASCII

python2与python3的 str 区别

  • Python3 str 类型默认存:Unicode格式
  • Python2str 类型为了不乱码在str 前加一个u

 

posted @ 2020-03-13 16:40  zhw_sylvia  阅读(157)  评论(0编辑  收藏  举报