【3】基础知识类---字符串、字节串&utf-8、unicode

字符串&字节串

一、串类型

1. 字符串
2. 字节串(二进制)(其他编码)

二、转换规则

​ 1. 字符串—>字节串(encode)

​ 2. 字节串—>字符串(decode)

三、python3环境中

字节串:bytes

字符串:str

转换规则:

​ bytes —> str :decode

​ str —> bytes : encode

四、python2环境中

字节串: str

字符串: unicode

转换规则:

​ str —> unicode :decode

​ unicode —> str : encode

五、使用

​ Step1: 确认python版本,选择python2 还是 python3

​ Step2: 确认数据类型

utf-8 & unicode

一、计算机 发明

美国人(发明),英国人(沿用)

二、如何表示一个字符串?

​ 定义一个字符串集(一个字节,0-255)
* ascii 字符集*

十六进制十进制字符
0110 000197a
0110 001098b
0110 001199c

三、沿用

欧洲人在 ascii基础上扩展另一套字符集

(0-65535)
iso-8859-1/lantin -> 2个字节表示一个字符

中国人用计算机
iso-8859-1 -> gb2312 -> gbk

台湾地区的中国人用计算机
big5

四、统一

(1)起初:

ISO国际标准化组织 unicode 码字符集 2 个字节作为一个字符
包含全世界的字符(倡议是理想,现实是骨感的)

ascii 传输
0110 0001 0110 0010 0110 0011

unicode 传输
0000 0000 0110 0001 0000 0000 0110 0010 0000 0000 0110 0011

(2)妥协:
unicode 推出一个压缩/编码标准 utf 标准 (utf-8,utf-16,utf-32)

UTF-8 
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

unicode 进行 utf-8 转目标数据一个字符串转换成 1-6 个字节不等
0000 0000 0110 0001 0000 0000 0110 0010 0000 0000 0110 0011 -> utf-8转换 -> 0110 0001 0110 0010 0110 0011

0000 0000 0110 0001 -> 97 -> a
0000 0000 0110 0010 -> 98 -> b
0000 0000 0110 0011 -> 99 -> c

五、总结

(1)utf-8 和 unicode 的关系

utf-8 是 unicode 一种压缩或者转码方式,目的方便 传输 和 存储,让传输变得更小,让存储更小

(2)用途

utf-8 格式的数据专门用于 网络传输和存储(更小了);
unicode 一般都用于内存计算

python中
内存中字符串类型 -> unicode
字节串类型 -> utf-8

# 把二进制(utf-8) 转换成 字符串 (unicode)
# utf-8 转 unicode ---> decode
# unicode 转 utf-8 ---> encode

(3)注意:

utf-8 把 unicode 转换成 1-6 个字节不等
中文通过 utf-8 转换出来占 3 个字节

(4)记忆:

unicode 不能够直接 用于网络传输和存储,必须进行 utf-8 编码

utf-8/gbk/gb2312/big5/… 看成二进制
unicode (内存中)字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值