1、常见的四种编码方式的编码过程:

ascii
    A : 00000010 8位 一个字节
unicode

     A : 00000000 00000001 00000010 00000100 32位 四个字节
               中:00000000 00000001 00000010 00000110 32位 四个字节
utf-8

     A : 00100000 8位 一个字节
    中 : 00000001 00000010 00000110 24位 三个字节
gbk

     A : 00000110 8位 一个字节
    中 : 00000010 00000110 16位 两个字节
1),各个编码之间的二进制,是不能互相识别的,会产生乱码。
2),文件的储存,传输,不能是unicode(只能是utf-8 utf-16 gbk,gb2312,asciid等)

3),简单描述就是:

  ascii :  8位 1字节  表示1个字符
  unicode  32位  4个字节  表示一个字符
  utf- 8  1个英文 8位,1个字节
          欧洲 16位   两个字节  表示一个字符
          亚洲 24位   三个字节  表示一个字符
  gbk    1个英文 8位,1个字节
          亚洲 16位   两个字节  表示一个字符

2、python3 中的编码

  str类型的数据,是以unicode(32位表示一个字符)的形式存储到内存中,但是该方式编码不能存储到硬盘或者在网上传输,
于是就可以介绍3中的另外一个数据类型bytes,使用encode('utf-8/gbk/gb2132/等')函数,将str转换成bytes类型,
实际上就是将unicode代码转换成其他方便传输和存储的编码方式

演示代码:

 # 英文
s1 = 'Beijing'
s2 = b'Beijing'
print(type(s1), type(s2)) # 中文
s3 = '北京'
# s4 = b'北京' # 报错,不能如此写
# 需要编码
s5 = s3.encode('utf-8')
s6 = s3.encode('GBK')
print(s6) # 4个字节
s4 = b'\xe5\x8c\x97\xe4\xba\xac' # 看到是6个字节表示2个中文,这是utf-8的特性,如果是GBK,就是4个字节了
print(s4)

python基础之六:编码简介以及python3中的编码的更多相关文章

  1. 转 python3中SQLLIT编码与解码之Unicode与bytes

    #########sample########## sqlite3.OperationalError: Could not decode to UTF-8 column 'logtype' with ...

  2. python3中的编码与解码(超好理解)

    编码和解码是针对数据而言的,数据能干什么呢?无非就是用来显示,储存和传输的: 储存和传输数据当然是希望数据越小越好,所以发明了utf-8这种数据编码显示:它智能将英文用一个字节表示,欧洲的字符用两个字 ...

  3. python3中的编码

    python2字符串编码存在的问题: 使用 ASCII 码作为默认编码方式,对中文处理不友好 把字符串分为 unicode 和 str 两种类型,将unicode作为唯一内码,误导开发者 python ...

  4. Python3中的编码问题

    编码方式介绍 我们首先来熟悉一下常见的一些编码方式,按照时间轴来划分,共有以下几种编码方式(常见): ASCII编码方式:对127个常见字符进行编码,其中包含了10个阿拉伯数字,共52个大小写英文字母 ...

  5. 在python3中的编码

    在python3中的编码 #_author:Administrator#date:2019/10/29import sysprint(sys.getdefaultencoding())#utf-8 打 ...

  6. python基础(5):格式化输出、基本运算符、编码问题

    1. 格式化输出 现在有以下需求,让⽤户输入name, age, job,hobby 然后输出如下所⽰: ------------ info of Alex Li ----------- Name : ...

  7. Python基础系列----语法、数据类型、变量、编码

    1.基本语法                                                                                        Python ...

  8. Python基础篇 -- 小数据池和再谈编码

    小数据池 1. id() 通过id()可以查看到一个变量表示的值在内存中的地址 s = "Agoni" print(id(s)) # 2410961093272 2. is 和 = ...

  9. 一篇文章助你理解Python3中字符串编码问题

    前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...

随机推荐

  1. JDK1.8--API

    链接:https://pan.baidu.com/s/1mNlMIS1_8wFuQZ2vl2eTGg 提取码:e4yr

  2. JS比较软件版本号

    JS比较软件版本号 版本号格式为:a.b.c 1.获取版本号中的数字 function toNumber(n) { // 使用正则表达式,截取字符串为数组,字符串中包含非数值型,如字母,则数组元素中会 ...

  3. Isilon Gen6的换盘步骤

    When a drive is faulted and ready for replacement, OneFS will illuminate the Front Panel Fault LED a ...

  4. [转帖]CHROME开发者工具的小技巧

    CHROME开发者工具的小技巧 https://coolshell.cn/articles/17634.html 需要仔细学习看一看呢. 2017年01月19日 陈皓 评论 58 条评论  64,08 ...

  5. 图解微信小程序---获取电影列表

    图解微信小程序---获取电影列表 代码笔记 list跳转 第一步:编写前端页面获取相关的电影列表参数(对于显示参数不熟悉,可以先写js,通过console  Log的方式获取我们电影的相关数据字段,后 ...

  6. http内网转发

    package main import ( "io" "log" "net/http" "strings" ) func ...

  7. tesseract-ocr 开源引擎使用

    国内资料比较少 一搜一大堆一样的 你抄我我抄你 前面怎么下载 怎么安装 怎么使用命令 怎么配中文字体 . 跳过.随便搜搜一大堆 科普下说下 box编辑工具  无论怎么搜jTessBoxEditor ( ...

  8. C# 获取所有可用的打印机

    C# 获取所有安装了的打印机代码如下: using System.Drawing.Printing; var printers = PrinterSettings.InstalledPrinters; ...

  9. C#专业的音视频采集录制类库SharpCapture介绍

    SharpCapture是高性能.轻量级.接口清晰.使用简单的C#语言编写的.NET音视频采集.屏幕录制类库.本类库可以采集系统声卡.麦克风.摄像头.屏幕画面,支持声卡和话筒混音采集. 可以应用到直播 ...

  10. windows10 edge浏览器关闭没有提示如何解决

    通常情况下,用户在win10 edge中打开多个窗口,点击关闭按钮就会出现“要关闭所有标签”提示,然后可以点击 取消来取消关闭edge.不过,最近一位windows10系统用户反馈自己在一次勾选“总是 ...