发展史: https://www.cnblogs.com/houxt/p/11250878.html

python2内容进行编码(默认ascii),而python3对内容进行编码的默认为utf-8。

ascii:
最多只能用8位来表示(一个字节),即:2**8 = 256(即pow(2,8)=256),
所以,ASCII码最多只能表示256个符号。
unicode:
万国码,任何一个字符==两个字节
utf-8:
万国码的升级版,一个中文字符==三个字节,英文是一个字节,欧洲的是2个字节
gbk:
国内版本,一个中文字符==2个字节,英文是一个字节
gbk转utf-8,则需通过媒介unicode

ascii

A:00000010 8位 一个字节

unicode

A:00000000 00000001 00000010 00000100 32位 四个字节

中:00000000 00000001 00000010 00000100 32位 四个字节

utf-8

A:00000110 8位 一个字节

中:00000010 00000110 16位 两个字节

gbk

A:00000110 8位 一个字节

中:00000010 00000110 16位 两个字节

1,各个编码之间的二进制,是不能互相识别的,会产生乱码。

2,文件的存储,传输,不能是unicode (只能是utf-8 utf-16 gbk gbk2312 ascii等)

python3

  str  在内存中是Unicode编码。

    bytes类型

    对于英文:

      str:表现形式:s = 'alex'

         编码方式:010101010 unicode

     bytes:表现形式:s = b'alex'

          编码方式:000101010 utf-8 gbk。。。。

    对于中文:

       str:表现形式:s = '中国'

          编码方式:010101010 unicode

     bytes: 表现形式:s = b' x\e91\e91\e01\e21\e31\e32'

           编码方式:000101010 utf-8 gbk。。。。

 encode 编码,如何将 str ——> bytes

    使用方法:  str.encode('utf-8')

 decode 解码,如何将 bytes——> str

使用方法:  bytes.decode('utf-8')

ascii、unicode、utf-8、gbk 区别?的更多相关文章

  1. ASCII UNICODE UTF "口水文"

    最近接了一个单是需要把非 UTF-8 (No BOM)编码的文件转换成 UTF-8 (No BOM),若此文件是 UTF-8 但带有 BOM ,需要转换成不带 BOM 的.于是开启了一天的阅读.首先花 ...

  2. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别(转载)

    原文出处:http://www.blogjava.net/xcp/archive/2009/10/29/coding2.html 最近老为编码问题而烦燥,下定决心一定要将其弄明白!本文主要总结网上一些 ...

  3. 浅谈ASCII 、ISO8859-1、GB2312、GBK、Unicode、UTF-8 的区别。

    浅谈ASCII .ISO8859-1.GB2312.GBK.Unicode.UTF-8 的区别. 首先,先科普一下什么是字符编码.字符是指一种语言中使用的基本实体,比如英文中的26个英文字母,标点符号 ...

  4. 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解

    来自:http://blog.csdn.net/lvxiangan/article/details/8151670 ------------------------------------------ ...

  5. ASCII\UNICODE编码的区别

    前几天,Google给我Hotmail邮箱发了封确认信.我看不懂,不是因为我英文不行,而是"???? ????? ??? ????"的内容让我不知所措.有好多程序员处理不好编码问题 ...

  6. 字符编码ANSI、ASCII、GB2312、GBK、GB18030、UNICODE、UTF-8小结

    编码和解码可以理解成二进制和字符(广义的字符,包括汉字等)的映射表,编码即从字符映射至二进制,解码则为逆过程. 1.英语字符编码ASCII 开始计算机只在美国用.8字节一共可以组合出256(2的8次方 ...

  7. 浅显总结ASCII Unicode UTF-8的区别

    如果觉得此地排版不好,欢迎访问我的博客 浅显总结ASCII Unicode UTF-8的区别 制作表单时,为了追求更好的用户交互体验,常常会有提示性的内容,比如提醒用户字符的限制.由于英文,中文字符的 ...

  8. 了解ASCII、gb系列、Unicode、UTF-8的区别

    转自:http://www.douban.com/note/334994123/?type=rec ● 为什么有这么多编码? ● UTF-8和GB2312有什么区别? ● 我们在国内做网站是用UTF- ...

  9. is 和 == 的区别,utf和gbk的转换,join用法

    is 和 == 的区别 # is 比较的是内存地址 # == 比较的是值 a = 'alex' b = 'alex' #int,str(小数据池)会被缓存,为了节约内存 print(id(a),id( ...

  10. 关于编码的发展演变:ASCII、GB2312、GBK、gb18030、Unicode、UTF-8

    [1]ASCII 每个字符占据1bytes(字节),第一次以规范标准发表是在1967年,最后一次修订是在1986年.用二进制表示的话最高位必须为0(扩展的ASCII不在考虑范围内),因此ASCII只能 ...

随机推荐

  1. 【剑指offer】面试题 22. 链表中倒数第 K 个节点

    面试题 22. 链表中倒数第 K 个节点

  2. CF1033C Permutation Game

    题目描述 输入输出样例 输入 #1 输出 #1 BAAAABAB 输入 #2 输出 #2 ABAAAABBBAABAAB 数据范围 1<=n<=1e5,1<=ai<=n 解题思 ...

  3. python基础 — 数据组合

    a = [1, 2, 3] b = [4, 5, 6] c = [7, 8, 9] for x, y, z in (a, b, c): print(x, y, x) print(type(zip(a, ...

  4. 对JAVA工程师绝对有用的Java学习资源清单

    学习Java和其他技术的资源其实非常多,但也不是都是好的有用的,我们要取其精华去其糟粕,选择那些最好的,最适合我们的,同时也要由浅入深,先易后难.基于这样的一个标准,我在这里为大家提供一份Java的学 ...

  5. Magic Line(思维+计算几何问题)(2019牛客暑期多校训练营(第三场))

    示例: 输入: 140 1-1 01 00 -1 输出:-1 999000000 1 -999000001 题意:给定平面上一系列的点,求一条以(x1,y1),(x2,y2)两点表示的直线将平面分为包 ...

  6. 在bat批处理中简单的延时方法

    使用for命令: 延时1s左右的方法: @echo off echo %time% ,,) do echo %%i>nul echo %time% pause %time%是用来显示延时时间,实 ...

  7. redis HyperLogLog的使用

    一.概念1.redis在2.8.9版本添加了HyperLogLog结构.2.redis HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是:在输入元素的数量或者体积非常非常大 ...

  8. Hadoop 系列(六)—— HDFS 常用 Shell 命令

    一.基本命令 打开 Hbase Shell: # hbase shell 1.1 获取帮助 # 获取帮助 help # 获取命令的详细信息 help 'status' 1.2 查看服务器状态 stat ...

  9. JavaScript是单线程还是多线程(转)

    多线程要考虑线程之间的资源抢占,死锁,冲突之类一系列问题.JavaScript作为一门客户端脚本,貌似没有多线程的一些列问题.那么JavaScript是单线程还是多线程?通过查资料总结了JavaScr ...

  10. Unity项目 - MissionDemolition 愤怒的小鸟核心机制

    目录 游戏原型 项目演示 绘图资源 代码实现 注意事项 技术探讨 参考来源 游戏原型 爆破任务 MissionDemolition 是一款核心机制类似于愤怒的小鸟的游戏,玩家将用弹弓发射炮弹,摧毁城堡 ...