编码

编码

  • 编码,文字和二进制之间的一个对照表

1.ascii编码

  • ascii规定使用1个字节(8位)来表示字母与二进制的对应关系

  • 2**8=256种对应关系

    只包含英文二进制的对应关系;

  • image-20211125110832357

  • image-20211125111003420

2.GBK

  • gb-2312编码,1980年制作

  • gbk编码,对gb2312进行扩展,包含了中日韩等文字(1995)
  • 两个字节表示一个汉字

  • image-20211125112204236

3.unicode

  • unicode也被成为万国码,为全球的每个文字都分配了一个码位(二进制表示)

  • Ucs2
    用固定的两个字节表示一个文字
    
  • Ucs4
    用4个字节表示一个文字
    
    2**32种可能;
    
  • image-20211125113412003

  • image-20211125170104967

  • image-20211125170839581

4.UTF8

  • 包含所有文字和二进制的对应关系,全球应用较为广泛。

  • 本质上utf-8是对unicode的压缩,用尽量少的二进制去与文字进行对应。

  • 中文使用utf8表示,一般是3个字节

  • image-20211125171209349

  • image-20211126085643648

5、Python中的编码

5.1 字节

字符串(str)	"啊哈哈哈哈"		Unicode处理			一般存在内存(运行内存)
字节(byte)	b"ahhhhhhhhh"	utf8编码 or gbk编码		一般用于文件的存储

image-20211126090506698

  • # -*- coding: utf-8 -*-
    '''
    @Time    : 2021/11/26 9:09
    @Author  : ziqingbaojian
    @File    : 1.编码.py
    '''
    
    name="啊哈哈哈哈"
    print(name.encode("utf8"))#b'\xe5\x95\x8a\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88'
    print(name.encode("gbk"))#b'\xb0\xa1\xb9\xfe\xb9\xfe\xb9\xfe\xb9\xfe'
    
    file_obj=open('log.txt','wb')
    file_obj.write(name.encode("utf8"))#以字节的形式写入
    file_obj.close()#关闭文件
    
  • image-20211126091229044

原文地址:https://www.cnblogs.com/Blogwj123/p/15606084.html