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在定义数 ...
随机推荐
- 201771010123汪慧和《面向对象程序设计Java》第十二周实验总结
一.理论部分 1.在Java提供的GUI构建工具中可以分为组件和容器两类. 2.在Java中的组件有:按钮.标签.复选框.单选按钮.选择框.列表框.文本框.滚动条.画布.菜单. 3.在Java中的容器 ...
- Mac Eclipse 打包可执行jar文件
2 3 4 保存后 终端 cd 目录 java -jar xxxx.jar
- 快速排序_python
def quicksort(ls,result): if len(ls)<=1: result+=ls # return result else: flag=ls[0] left=[x for ...
- vector删除指定元素
#pragma once #include "stdafx.h" #include<windows.h> #include <vector> #includ ...
- 手机与Arduino蓝牙串口通讯实验及完整例程
安卓手机与Arduino之间采用蓝牙串口通讯,是很多智能装置和互动装置常用的控制方法,简单而有效,无需网络环境,很实用的技术. 实验采用Arduino UNO板,加了一块1602LCD屏做显示(因为只 ...
- sqli-labs注入lesson3-4闯关秘籍
·lesson 3 与第一二关不同的是,这一关是基于错误的get单引号变形字符型注入 要使用 ') 进行闭合 (ps:博主自己理解为字符型注入,是不过是需要加括号进行闭合,适用于博主自己的方便记忆的 ...
- elastic启动脚本
#!bin/bash export JAVA_HOME=/usr/java/jdk1.8.0_144 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH ...
- .equal()和==的区别
1.首先,equal和==最根本的区别在于equal是一个方法,而==是一个运算符. 2.一般来说,==运算符比较的是在内存中的物理地址,.equal()比较的是哈希算法值是否相等(即hashcode ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 连接
使用mysql二进制方式连接 您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库. 实例 以下是从命令行中连接mysql服务器的简单实例: [root@host]# my ...
- Cf水题B - Combination
地址: https://vjudge.net/problem/27861/origin Ilya plays a card game by the following rules. A player ...