day7_7.5

一、字符编码。

  1.

  在计算机的运行中,有三大部分组成,计算机硬件,操作系统,应用程序,当使用者在使用文档编写文字时,所显示的所有字符都存储在内存中,随后再存储在硬盘里,(仅限文字),所以,当美国人发明电脑时,都是基于自己国家的文字编写的程序,所以,美国人发明了属于自己国家的字符表,也就是ASCLL码,,因为英文字母很少,加上一些特殊符号,阿拉伯数字等,ASCLL只有125位左右。一个字符码也就8bit。下面是数据的换算。

  8bit=1Bytes

  1024Bytes=1KB

  1024KB=1MB

  1024MB=1GB

  1024GB=1TB

  1024TB=1PB

  然而,美国人发明的电脑只能输入英文,中国的字是显示不出来的,于是,中国人需要自己写一个表让电脑看懂中国,于是GBK出现了,GBK最多有2**16=65535个字符,每一个字符站2B。

  既然中国人可以,那日本人,韩国人等都可以有,于是所有的国家根据自己的语言,编写了属于自己国家的字符码。

  当每个国家都想着有能识别自己国家的码时,万国码出现了(unicode),万国码几乎容纳了所有语言的编译与翻译,它同一使用2个Byte表示。

  至此为止,所有的表,在内存与硬盘中所都是一样的,然而万国码对cpu有这巨大的负担,原本1B的字符现在需要2B才能被存储,使用起来也相当麻烦。

  所有,人们想出了一个方法,在内存中使用unicode,而再存储的时候使用另一个编码——utf-8,unicode向utf-8转换时,会将英文字符变成一个B,而将中文字符变成3个B。

  总结。

  unicode两个特点.

  1。兼容万国字符

  2。与每一个国家的编码都有对应关系,

  从内存中的unicode二进制数据到硬盘中的utf-8的二进制数据称为编码(encode)

  从硬盘中的utf-8二进制数据到内存中unicode二进制数据被称为解码(decode)

  保证不乱码的核心点是:文本文件以什么类型的编码,就用什么类型的解码(*************)

  2.python2与python3的区别

  在python2 的编写是,unicode还没有盛行,所有python都已ASCLL进行编码,

  而在python3中,都使用utf-8进行编码。

  3.头文件定义字符的保存格式

  在文件的开头,可以使用以下代码定义文件的保存格式

#coding:代码格式

  因为所有编码格式都支持英文字符,所以无论什么表都可以识别该代码。

  在python3中字符串默认是unicode,而在pycharm软件中,字符串默认为utf-8类型,在window终端编写程序时,使用的时GBK进行编码。

  在python3的终端中,字符串经过编码后所表现的时bytes类型的数据.

  在python2中定义中文字符串时,都会在前面添加‘u,吧字符串格式转换成Unicode’。

  (**********)

x="上"
print(x.encode('utf-8'))
#将字符串转换成utf-8的二进制类型
print(res.decode('utf-8'))
#将硬盘中的utf-8二进制数解码成unicode格式的二进制。

 二。文件

  1.什么是文件

  操作系统是提供给用户操作复杂硬件的简易接口。

  2.为什么要操作文件

  人或者应用程序需要永久保存数据。

  3.如何操作文件

  通过python代码操作文件。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

# coding:gbk
上一篇:day7、字符编码和文件处理


下一篇:springboot集成elasticsearch遇到的问题