目录

  • 1. 什么是编码
  • 2. 编码方式属性
  • 3. decode与encode

1. 什么是编码

事实上计算机只认0或1,然而却可以通过计算机来显示文本,这就是靠编码来实现的。
编码其实就是约定的一个协议,比如ASII编码约定了大写字母A对应十进制65,那么在读取一个字符串的时候,看到65,计算机就知道这是大写字母A的意思

由于计算机是美国发明的,所以这个ASCII编码设计时只采用1个字节存储,包含了大小写英文字母、数字和一些符号。但是计算机在全世界普及之后,ASCII编码就成了一个瓶颈,因为1个字节是完全不足以表示各国语言的

大家知道英文只用26个字母就可以组成不同的单词,而汉字光长用字就有好几千个,至少需要2个字节才足以存放,所以后来中国制定了GB2312,用于对汉字进行编码
然后的然后日本,韩国也制定了各自的编码,然后就出现冲突了,就导致了最初计算机上总是容易看到乱码的现象

为了解决这个问题,Unicode编码应运而生。Unicode组织的想法最初也很简单,创建一个足够大的编码,将所有国家的编码都加进来,进行统一标准。
随着问题的解决,新的问题也出现了,如果你写的文本只包含英文和数字,那么用Unicode编码就显得特别浪费存储空间(使用ASCII编码只占用一半的存储空间),所以本着能省一点是一点的精神,Unicode还创造了多种实现方式
比如常见的UTF-8编码就是Unicode的一种实现方式,它是可变长编码。
简单来说就是,当文本是ASCII编码的字符时,它用1个字节存放;而当文本是其他Unicode字符的情况,它将按一定的算法转换,每个字符使用1~3个字节存放。

2. 编码方式属性

GB2312 UTF-8 Unicode
GB2312编码专门用来解决中文编码的,是双字节的,并且不论中英文都是双字节的;包含全部中文字符;总的来说GB2312编码方式的编码是以中国国情而创造的,在国际上的兼容性不好。 UTF-8 编码是Unicode的一种实现方式,因为对于大多数语言,只需要一个字节就能够编码,如果都采用Unicode会极大浪费,于是出现了可变长编码UTF-8。它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。另外,如果是外国人访问你的GB2312网页,需要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问。这也是为什么大多数的网页是使用UTF-8编码而不是GB2312。 目前几乎收纳了全世界大部分的字符。所有的字符都有唯一的编号,这就解决了解码的冲突!但是,unicode把大家都归纳进来,却没有为编码的二进制传输和二进制解码做出规定。

3. decode与encode

decode encode
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gbk编码的字符串str1转换成unicode编码。 encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gbk编码。
  1. encode:用于编码
 str.encode(encoding='UTF-8',errors='strict')
#   encoding -- 要使用的编码,如"UTF-8"
#   errors   -- 设置不同错误的处理方案

该方法返回编码后的字符串

u='我喜欢你啊!'
str1=u.encode('gb2312')
print(str1)
# b'\xce\xd2\xcf\xb2\xbb\xb6\xc4\xe3\xb0\xa1\xa3\xa1'
  1. decode:encoding 指定的编码格式解码字符串。默认编码为字符串编码
str.decode(encoding='UTF-8',errors='strict')
#   encoding -- 要使用的编码,如"UTF-8"
#   errors -- 设置不同错误的处理方案

该方法返回解码后的字符串

u='我喜欢你啊!'
str1=u.encode('gb2312')
print(str1.decode('gb2312'))
#   我喜欢你啊!

编码(decode与encode)相关推荐

  1. python中的decode(编码)和encode(解码)

    相信有好多人和我一样,学习了好久python,但是对decode和encode还是不太熟悉,今天就把这个内容整理下. decode encode str ---------> str(Unico ...

  2. 编码格式(UTF-8 与 ANSI)各种编码解码(encode、decode)

    Windows:默认为 ANSI,记事本程序另存为处,可以设置其他编码格式: Ubuntu:默认为 UTF-8 1. ANSI ANSI 编码表示英文字符时用一个字节,表示中文用两个或四个字节 -- ...

  3. python - 文本处理 之 解码编码decode encode

    目录 1.decode解码 2.encode编码 3.特殊符号 4.常用操作 (1)字符串编码常用类型 (2)gb2312转为utf-8 (3)转码异常 (4)u'string'指定unicode类型 ...

  4. python中decode和encode的区别

    首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码, 即先将其他编码的字符串解码(decode)成unicode,再从unic ...

  5. python decode unicode encode

    字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(en ...

  6. python爬取小说出现乱码_详解Python解决抓取内容乱码问题(decode和encode解码)

    一.乱码问题描述 经常在爬虫或者一些操作的时候,经常会出现中文乱码等问题,如下 原因是源网页编码和爬取下来后的编码格式不一致 二.利用encode与decode解决乱码问题 字符串在Python内部的 ...

  7. pythonencode和decode_Python3的decode()与encode()

    python3的decode()与encode() Tags: Python Python3 对于从python2.7过来的人,对python3的感受就是python3对文本以及二进制数据做了比较清晰 ...

  8. python中文decode和encode转码

    字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(en ...

  9. Python解决抓取内容乱码问题(decode和encode解码)

    一.乱码问题描述 经常在爬虫或者一些操作的时候,经常会出现中文乱码等问题,如下 原因是源网页编码和爬取下来后的编码格式不一致 二.利用encode与decode解决乱码问题 字符串在Python内部的 ...

  10. decode和encode

    首先要明确一点就是python中的字符串在内部都是以unicode存储的.decode的意思是把一个unicode字符串"解码"成期望的编码,decode完后,不仅编解码变了,而且 ...

最新文章

  1. 利用百度api判断已知经纬度的一个点是否在多边形内
  2. Git的思想和基本工作原理
  3. docker 容器重命名
  4. 计算机网络wfq,计算机网络基础试题-a卷-信科09.doc
  5. JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...
  6. 程序员面试金典 - 面试题 17.17. 多次搜索(Trie树)
  7. C/C++课程设计 新生入学管理系统(二)
  8. Consider defining a bean of type ‘com.xg.stupro.service.StudentService‘ in your configuration.
  9. Java动态代理与静态代理
  10. Ubuntu-显卡驱动-nvidia-smi报错:couldn‘t communicate with the NVIDIA driver
  11. 36. Element length 属性
  12. DPDK框架原理简介 (0002转)
  13. 几种代码管理工具比较
  14. RecyclerView、Adapter、ViewHolder的关系
  15. ZOJ3551 Bloodsucker(概率dp)
  16. [ERROR] InnoDB: Attempted to open a previously opened tablespace
  17. 科猫网:3个职场“寒心”故事(道出职场冷暖)
  18. Matlab——行星轨道问题
  19. 【Avro二】Avro RPC框架
  20. 【photoshop】笔记(四)之修补工具

热门文章

  1. 各大浏览器兼容性报告
  2. SwitchHosts for Mac(mac hosts修改工具)
  3. 【机器学习】K-means算法Python实现教程
  4. 计算机大写改成拼音形式,拼音转换
  5. Android Studio重启adb
  6. 深信服 云桌面 linux,极域深信服云桌面专用版
  7. shell转化bat工具_shell脚本与bat转换
  8. 蓝牙小钢炮 - Bose 博士 Revolve 蓝牙音箱使用感受
  9. MOSSE相关滤波跟踪算法
  10. python支付_玩转京东支付(python)