day2字符编码及转换

涉及到的编码有以下几种:

  1. ASCAII码:在ascall中英文字符为1个字节,不能存中文字符(所以有人问你:ascll码中中文字符占几个字节就是想坑你)
  2. Unicode(万国码):默认中英字符都是2个字节
  3. UTF-8:(Unicode的一个扩展集:可变长或叫可伸缩编码)英文字符按照ascll占1个字节;中文字符一般占3个字节。
  4. GBk(国标:我国95年制定的收录了21003个汉字的编码)GBK向下兼容gb2312

下面就是以上几种编码的转换:
在这里插入图片描述
如图所示:为三种编码之间的转换
注意gbk与utf-8转换必须经过Unicode这个桥梁

__author__ = '70786'
# coding:utf-8   (整个文件编码为utf-8,但是默认的编码格式为unicode)
import sys
print(sys.getdefaultencoding())
s = "你好"  #默认为unicode
print(s)
s_gbk = s.encode("gbk")
s_utf8 = s.encode("utf-8")
print(s_gbk)
print(s_utf8)

gbk_to_utf8 = s_gbk.decode("gbk").encode("utf-8")#gbk转换utf-8 标准写法
print(gbk_to_utf8)#结果为utf-8编码

utf8_to_gb2312 = s_utf8.decode("utf-8").encode("gb2312")
print(utf8_to_gb2312)

s2 = s_utf8.decode("utf-8").encode("gb2312").decode("gb2312")# **编码之后变成了bytes 再解码就又变回了字符串。**
print(s2)

运行结果:

utf-8
你好
b'\xc4\xe3\xba\xc3'
b'\xe4\xbd\xa0\xe5\xa5\xbd'
b'\xe4\xbd\xa0\xe5\xa5\xbd'
b'\xc4\xe3\xba\xc3'
你好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值