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’))
is,==区别,编码转换的更多相关文章
- 使用vbs脚本进行批量编码转换
使用vbs脚本进行批量编码转换 最近需要使用SourceInsight查看分析在Linux系统下开发的项目代码,我们知道Linux系统中文本文件默认编码格式是UTF-8,而Windows中文系统中的默 ...
- ASP 编码转换(乱码问题解决)
ASP 编码转换(乱码问题解决) 输出前先调用Conversion函数进行编码转换,可以解决乱码问题. 注,“&参数&”为ASP的连接符,这里面很多是直接调用的数据库表字段,实际使用请 ...
- php urlencode()函数URL编码转换实例解析
URLEncode:是对网页url所包含中文字符的一种编码转化方式,URLEncode有两种常见方式,一种是基于GB2312的 Encode(Baidu.Yisou等搜索引擎使用),另一种是基于UTF ...
- python 编码转换(转)
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换. 常见的编码转换分为以下几种情况: 自动识别 字符串编 ...
- python基础之小数据池,is和==区别 编码问题
主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...
- java字符编码转换研究(转)
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等. 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是" ...
- python 编码转换 专题
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换. 常见的编码转换分为以下几种情况: 自动识别 字符串编 ...
- 关于JS的编码转换问题
在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况. 这是由于浏览器和报 ...
- 帆软报表FineReport数据库连接编码转换
1. 问题描述 数据库会以某种编码方式保存与读取数据,FineReport解析时默认使用GBK字符集,若数据库端编码与设计器端编码不一致时,就会导致中文及特殊字符的乱码. FineReport在定义数 ...
随机推荐
- Mac 终端命令使用自动补全时忽略大小写设置
Mac 终端在使用 tab 补全命令时默认大小写敏感,通过以下设置方法可以忽略大小写,方法同样适用于 iTerm2. 打开终端输入以下命令: nano .inputrc 将以下命令复制进去: set ...
- 在h5页面上添加音乐播放
接到需求说要做一个h5轮播图,同时配上背景音乐. Html部分: <!--音乐开始--> <div id="music"> <div id=" ...
- python py pyc pyw pyo pyd之间区别
来源: http://blog.csdn.net/chroming/article/details/52083387 1.py 脚本文件,是最基本的源码扩展名.windows下直接双击运行会调用pyt ...
- Maven:程序包不存在,找不到符号
maven build时出现了以下的错误: 程序包xx.xx不存在,xxx找不到符号 原因一:DAO层依赖Service接口层的Bean类,在pom.xml中添加了对Service的依赖,也因此引入了 ...
- 面试题:你使用过concurrent包下的那些类?
1.executor接口,使用executor接口的子接口ExecutorService用来创建线程池2.Lock接口下的ReentrantLock类,实现同步,比如三个线程循环打印ABCABCABC ...
- 删除xcode项目中不再使用的图片资源
1. 利用工具 下载地址 http://jeffhodnett.github.io/Unused/ 运行效果如下 2. 通过终端 执行 shell 命令 a. 第一步建立.sh 文件 如 ...
- spring boot打成可执行jar
第一步 添加 <packaging>jar</packaging> 第二步添加 <build> <plugins> <plugin> < ...
- Java之创建线程的方式四:使用线程池
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...
- PAT 2011 秋
A : World Cup Betting #include <cstdio> #include <iostream> #include <algorithm> u ...
- scala快排
笔记积累,直接看代码吧,sublime上运行的 def quickSort(ls:List[Int]):List[Int]={ if (ls.isEmpty) ls else quickSort(ls ...