• 编码


    编码

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

    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

  • 相关阅读:
    解决js newDate()苹果手机日期格式显示NaN
    AD 用户个人信息补充
    CSV 文件批量导入 数据库 Pandas
    【笔记】单调栈?
    【其他】Modern C++ in OI
    【笔记】网络流
    【笔记】默认构造函数和零初始化
    【笔记】正确的当前弧优化
    golang读取文件的方法
    protobuf使用
  • 原文地址:https://www.cnblogs.com/Blogwj123/p/15606084.html
Copyright © 2020-2023  润新知