is,==区别,编码转换
一.is 比较的是内存地址
== 比较的是两边的值
二.编码扩展:
1字节(bytes) = 8 位(bit)
1024byte = 1kb
1024kb = 1MB
1024MB = 1GB
1024GB = 1TB
ascii: 只能用于英文,8位 一个字节 首位都是0 最初只设计了7位,发明者预留了一位,以便后期扩展,所以最后是8位。
unicode: 万国码,最早发明的时候16位,2个字节。
后来进化:32位 四个字节
utf-8:最少用8位表示一个字节
英文:8位 一个字节
欧洲文字:16位 两个字节
中文:24位 三个字节
gbk 国标,每个国家都有自己的gbk 英文: 8位 一个字节
中文:16位 两个字节
1, 各个编码之间的二进制是不能互相识别,会产生乱码。
2, 文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gdk gb2312 ascii 等)因为存储空间太大,浪费,占用资源。涉及到转化到其他的编码。
Py3:在py3中str 的编码方式是用unicode。
bytes类型:unicode转换成bytes类型在进行存储和传输。bytes和str类型基本一样,只有两个区别,1.编码方式,2.对于中文表现形式
对于英文:
str: 表现形式:s = ‘ales’ 例:a = ‘alex’
编码方式:010101010 unicode a1=b’alex’
Bytes: 表现形式:s = b’alex’ print(a,type(a))
编码方式:000101010 utf-8 gdk等 print(a1,type(a1))
对于中文:
str: 表现形式:s = ‘中国’
编码方式:010101010 unicode
Bytes: 表现形式:s=b’x\e91\e91\e01\e21\e31\e32’ 三个字节表示一个中文
编码方式:000101010 utf-8 gdk等
encode 编码:表现形式将str转换成 bytes类型,实际内部是将unicode转化为 utf-8或gbk编码 str--àbytes
例:sl = ‘alex’
sl1 = s1.encode(‘utf-8’) 转换成utf-8编码 (bytes类型),gbk也一样
print(sl1) 结果:b’alex’
decode 解码:bytes----àstr 及 非unicode(utf-8,gbk等)-àunicode
utf-8和gbk之间的转换:1.如果是字母,数字,特殊字符可以直接转换:
例:s = ‘alex’
s1 = s.encode(‘utf-8’)
s2 = s1.decode(‘gbk’)
print(s2)
2.如果是中文,需要先转换成unicode在转换成utf-8或gbk
例:
例:s = ‘中国’
s1 = s.encode(‘gbk’)
s2 = s1.decode(‘gdk’).encode(‘utf-8)
print(s2.decode(‘utf-8’))
最新文章
- App提交iTunes Connect,";二进制无效";问题解决方案。
- Java实现JDBC连接数据库实例
- Tomcat应用中post方式传参数长度限制
- Android UI之下拉刷新上拉刷新实现
- 关于Redis中交互的过程
- Android一个大众化的设置界面
- 34.Android之资源文件res里drawable学习
- 使用匿名委托,Lambda简化多线程代码
- Castle IOC FOR MVC 使用方法
- Spark技术内幕:Stage划分及提交源码分析
- AndroidStudio 快捷键使用
- Java实现生产者消费者问题与读者写者问题
- 14.6.1 Creating InnoDB Tables 创建InnoDB 表:
- Hibernate调用带有输入参数,输出参数为cursor的存储过程
- Code::Blocks 配置
- Google Adsense Google判断广告点击作弊的方式和数据 数据分析
- Mail.Ru Cup 2018 Round 3
- BSGS&;扩展BSGS
- 20190402Linux高级命令进阶(week1_day2
- VIP之Switch
热门文章
- 二十二、CI框架之模型别名
- day27(027-反射&;JDK新特性)
- python复习——数据输入输出
- Mybatis基本配置(一)
- MySQL--从库启动复制报错1236
- 82.常用的返回QuerySet对象的方法使用详解:all,select_related
- 2020/1/29 PHP代码审计之XSS漏洞
- Java反射--getDeclaredField()和getField()
- Linux&Win双系统下时间显示不正常的问题
- Json返回结果为null属性不显示解决