欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字符编码的普及

程序员文章站 2022-03-31 14:51:44
...

今日内容:

  一、字节编码

  

#字节编码的定义:
#1.1人类识别的语言与计算机识别语言的媒介(*****)
#人类识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流,一定需要一个媒介,进行两种标识符的转化
#1.2编码表:

#1.3计算运行的三大核心硬件:
CPU:将数据渲染给用户,*处理器
内存:临时存放数据,断电后消失
硬盘:永久存储数据,断电后还有

  

#1.4:了解:编码表的发展史

1. ascii(ASCII):字母、数字、英文符号与计算机01标识符的对应关系
思考:如何将128个字符用01完全标签
二进制:11111111 => 255 => 1bytes(1字节) => 8个二进制位

2.中国:研究汉字与计算机01标识符的对应关系:gb2312 => GBK(***) => GB18030
日本:Shift_JIS
棒子:Euc-kr
解决乱码问题
3. 制造一个可以完成万国字符与计算机01标识符的对应关系的编码表
编码表:unicode表
py2:ascii,没有按万国编码,原因py2早先有ASCII吗时还没有UNICODE
py3:默认 utf-8, 采用万国编码来解释文本内容

  

#1.5# 思考:unicode与utf-8什么关系unicode:用2个字节来存储汉字,用1个字节来存储英文字母,占运行 内存空间较多,i/o效率低
读取效率极高utf-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按unicode存储数据,硬盘和cpu采用utf-8来存取数据#“abc你好”

  

#1.6重点(*****)
#1.1 unicode与utf-8采用的是同一张unicode编码表,utf-8(1个字节1bytes代表一个字符,3个字节代表一个中文字符)是unicode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快
#1.2(*****)
1. 什么是字符编码:将人识别的字符转换计算机能识别的01,转换的规则就是字符编码表
2. 常用的编码表:ascii、unicode、GBK、Shift_JIS、Euc-kr
3. 编码操作:编码encode()、解码decode(

  

  二、字符与字节

直接编码的重点:
1. 字节的存储方式:8个二进制位 
2. 字符所占字节数:根据编码的不同,所占字节数可能不同
3. 三种格式字符串:u'表示unicode进二进制存储文本内容'、b'二进制'、r'原义字符串'

  

'''
了解
u、b格式字符串转换: str(b'', encode='utf-8')、bytes(u'', encode='utf-8')
'''

  

s1 = u'abc你好\n不好' 》》》unicode格式编码二进制格式
print(s1)
# 字节字符串
s2 = b'abc123\xb7\xb7'
print(s2)
# 原义字符串: 不对字符串内存做任何操作(eg:\n的转化)
s3 = r'abc你好\n不好'
print(s3)

# 编码与解码   规则:以什么方式存就以什么方式取
s = '123呵呵'
n_b = bytes(s, encoding='utf-8')
print(n_b)

b = b'123\xe5\x91\xb5\xe5\x91\xb5'
n_s = str(b, encoding='GBK')
print(n_s)


# 重点:*****
# 将u字符串编码成b字符串
print(u'你好'.encode('utf-8'))
# 将b字符串解码成u字符串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))

 

    三、文件操作

  

#三、文件的操作
#计算机中的文件:硬盘中一块存储空间)(虚拟文件)
#文件操作:根据文件名来操作硬盘的那块存储空间,操作方式:1,读read 2 写 write

  

"""1、打开文件2、操作文件(读:read() 写write()3、关闭文件*****"""
f = open.file()
f.read()
f.close()

  

  1.什么是文件  文件就是暴露给用户操作操作硬件的接口
 2.为何用文件  进行存储文件数据
  3.如何用文件  with open(r','r',encdind='utf-8')
  4.文件操作模式   r a w 
  5.常用方法 
  6.文件内指针的移动 seek(0,2) 第一个参数代表指针的位置0 是默认起始位 1 中间  2 是文件尾部  第二参数是指针偏移量 2从开始位迁移2个字符
  7.with的使用

  

   1.什么是文件

  

文件是操作系统为用户/应用程序提供的一种操作硬盘的抽象单位

 

 2.为什么用文件

  

用户/应用程序对文件的读写操作会由操作系统转换称具体的硬盘操作
所以用户/应用程序可以通过简单的读/写文件来间接地控制复杂的硬盘的存储操作,实现将内存中的数据用具保存到硬盘中

  

3.如何用文件f = open(...)#打开文件,拿到一个文件对象f,f就相当于一个遥控器

绝对地址: open(r"D:\sh.txt")
相对地址: .\  # 当前目录下

#向操作系统发送请求,要求操作系统打开文件
f = open(r"sh.txt",encoding="utf-8")

f.read()
f.close()
此时已将文件关闭
强调:一定要在程序结束前关闭打开的文件

  

4.文件操作 
     4.1 主模式

  

 r:只读模式(默认) 当文件不存在时,会报错 当文件存在时,文件指针指向文件的开头
 w:只写模式 当文件不存在时,新建一个空文档 当文件存在时,清空文件内容,文件指针跑到文件的开头 info = ['egon:123\n','alex:456\n','lxx:lxx123'] f.writelines(info) #将列表里面的数据,一行行的写进去(\n手动换行换行)
 a:追加 写模式 当文件不存在时,新建一个空文档,文件指针跑到文件的末尾 当文件存在时,文件指针跑到文件的末尾 在文件打开不关闭的情况下,连续的写入,下一次写入一定是基于上一次写入指针位置而继续的 f.write() f.writelines()