python基础-编码、解码

本文介绍了Python中的编码格式,如ASCII、GBK、Unicode和UTF-8,并探讨了Unicode与Bytes的区别,以及encode与encoding的不同。重点讲解了编码之间的转换、检测字符编码的方法,强调在内存操作和存储、网络传输中对Bytes和Unicode类型的使用需求。
摘要由CSDN通过智能技术生成

一、编码格式:

  1. ASCII编码:128个,主要存储英文字符
  2. GB2312:中文常用字
  3. GBK:中文,包含生僻字–文件保存类型为(ANSI)
  4. Unicode:在内存中使用----对应的文件保存类型为(UTF-8)
  5. UTF-8:编码完全兼容ASCII,可以理解为ASCII是UTF-8中的一部分

UTF-8:是变长的字符串。存储汉字是节省空间的
UTF-16:存储汉字是2个字节,分大小端保存
UTF-32:一个字符,都是用4个字节去保存;缺点:太占空间

二、unicode与bytes的区别

  • 计算机硬盘存储或网络传输,用的是bytes类型,需要从unicode类型encode为bytes
  • 计算机字符串操作或者人来识别,用的是unicode 类型,从bytes类型decode获取

三、encode与encoding的区别

1.encode:

  • encode是一个方法,只有字符串才能使用

2.encoding

  • encoding是一个参数:
    (1)open()方法读写文件时使用 ;
    (2)在python文件的第一行去用:
    • 如果没有设定编码类型,那么python默认用的是utf-8来解码。
    • (#encoding=gbk,将python编码改为gbk;如果不加此句,相当于encoding=utf-8)

四、编码之间的相互转换

  • encode:将unicode类型转为bytes类型(gbk\utf-8等)
  • decode:将bytes类型转为unicode类型(str)

1 如果不写参数,默认的decode()和encode()用的编码都是utf-8

>>> s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值