今日所学内容
一、类型转换
1、转换为数字类型
2、数字转化字符串
3、字符串与列表相互转换
s2 = ‘ie=UTF-8&wd=你好帅‘
res = s2.split(‘&‘)
print(res) # [‘ie=UTF-8‘, ‘wd=你好帅‘]
ls2 = [‘ie=UTF-8‘, ‘wd=你好帅‘]
n_s2 = ‘@‘.join(ls2)
print(n_s2) # ie=UTF-8@wd=你好帅
二、字符编码
1、编码的发展史
电脑只能识别高低电频对应的0,1信息 => 问题:如何将世间万物信息存放到内存中
世间万物信息 => 0,1形式的数据 => 电脑中存放,将该过程逆向操作,就是访问已存储的数据信息
2、编码表
人能识别的字符 <=> 机器能识别的字符:一定存在一种固定的对应关系
编码表:一定范围内人能识别的字符与机器能识别的字符形成的对应关系表(映射表)
3、ASCII表:
英文字母、英文符号、数字与机器能识别的字符的对应关系表,8个二进制位就能存放完这所有的对应关系 => 1字节
python2采用的默认编码是ASCII,早期并不支持中文编程
1)GBK:中文与与机器能识别的字符的对应关系表(完全兼容ASCII表),
16个二进制位能存放所有汉字与ASCII之前的对应关系 => 2个字节
2个字节能否存放常用汉字 => 16个二进制位 2^15
print(pow(2, 15)) ==》32768
2) Shift_JIS | Euc-kr:日文 | 韩文 与机器能识别的字符的对应关系表(完全兼容ASCII表)
4、Unicode万国码:世间中常用国家的常用字符与机器能识别的字符的对应关系表
1)乱码:存的编码格式与取的编码格式不一致
2) 转码:Unicode存在汉字与二进制对应关系,GBK也存在汉字与二进制对应关系,将GBK存放的数据转存到Unicode数据
utf-8与utf-16是Unicode编码表的两种体现方式,均采用Unicode编码表,只是存放数据采用字节数不一致,
utf-8:以1个字节存放英文,以3 | 6个字节存放汉字,在英文数据过多时,更省空间,用来传输效率更高
utf-16:所有支持的符号都采用2个字节存放,读存数据采用定长,不用计算,读存效率高
硬盘到内存需要数据的传输,内存到CPU需要数据的传输,所有都采用utf-8
内存需要高速读写,采用utf-16
学习的结晶:编码与解码要统一编码
原文:https://www.cnblogs.com/Chinesehan/p/10739405.html