python-字符编码

一、字符编码

字符编码指的是字符转换成/编码成数字

编码的过程一定要遵循一个标准,该标准称之为字符编码表

字符---------------------编码-------------------------->>数字

字符<<-------------------解码----------------------------数字

  1. ASCII表:只能识别英文字符,用8bit(8个二进制位)对应一个英文字符

    1个英文字符====>1Bytes

  2. GBk表:可以识别中文字符、英文字符、用8bit对应一个英文字符,用16个bit对应一个中文字符

    1个英文字符====>1Bytes

    1个中文字符====>2Bytes

  3. unicode(内存中默认使用该编码):用2Bytes表示一个字符

    可以识别万国字符

    与各种字符编码的二进制数字都有对应关系

  4. utf-8全称Unicode Transformation Format:

    1个英文字符====>1Bytes

    1个中文字符====>3Bytes

    结论:

  5. 编码与解码

    字符-----------------编码------------------------>>数字

    字符<<---------------解码-------------------------数字

    unicode二进制编码==>>utf-8二进制

    unicode二进制<<解码==uft-8二进制

  6. 内存中固定使用unicode编码、我们可以改变的是数据由内存刷到硬盘时采用的编码(应该采用utf-8)

    unicode的特点:

    可以识别万国字符

    与各种字符编码的二进制数字都有对应关系

  7. 解决乱码问题的核心:

    字符当初以什么编码存的、就应该以什么编码去读

    保证运行python程序的前两个阶段不乱码的解决方案:添加文件头

    在文件首行添加coding:文件当初存的字符编码

  8. python 解释器默认的编码

    python3:默认utf-8

    python2:默认ASCII

  9. python3的字符串类型在内存中存成unicode格式的二进制

    补充

    x = '上'
    #unicode的二进制------编码encode------->gbk格式的二进制
    res = x.encode('gbk')
    print(res,type(res)) #b'\xc9\xcf' <class 'bytes'>
    
    #unicode的二进制<------解码decode-------gbk格式的二进制
    m = res.decode('gbk')
    print(m) #上
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值