编码方式

将明文编码成密文需要按照一定的编码方式,编码方式多种多样,分别对应于不同的字符集。

ASCII

上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。

ASCII码一共规定了128个字符的编码,比如空格”SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。

其他编码

对于英语来说128个字符就已经够用了,但是对于其他语言来说却不够。因此针对不同的语言先后出现了多种编码方式,例如针对中文的GB2312和GBK编码,针对中文繁体的Big5编码等等,这些编码方式都使用多个字节表示一个字符。

Unicode

随着越来越多的编码方式的出现,急需一种能够包含全世界所有符号的编码系统来消灭乱码,这种编码系统就叫做Unicode。Unicode只是一套编码系统,包含所有字符集,却并不规定编码后的二进制代码如何存储。

UTF-32使用4个字节存储每一个字符,但是对于英文字符来说,使用ASCII编码只需1个字节即可存储,这极大的浪费了存储空间。

因此出现了一种变长的编码方式UTF-8,UTF-8是使用得最广泛的Unicode编码实现方式,使用1-4个字节表示一个字符,根据不同的字符变化长度。比如对于英文字符,1个字节就够了,但是对于中文,可能需要2-4个字节才能存储。

Base64

Base64是网络上最常见的用于传输8Bit字节代码的编码方式,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,可用作简单的加密方式。

Python 3编码

以前用Python 2,每次使用中文就会碰到各种编码问题,但是Python 3使得字符串编码变得非常简单。

我们可以通过以下代码查看Python 3的字符串默认编码:

import sys

sys.getdefaultencoding()

Python 3的默认编码方式是UTF-8。

使用Python解释器进行如下编码解码操作,在bytes和str之间转换:

>>> '中'.encode()

b'\xe4\xb8\xad'

>>> b'\xe4\xb8\xad'.decode('utf-8')

'中'

我们在使用Python以二进制的形式写入文件时,需要先将字符串编码成字节串,然后再写入文件。以二进制的形式读取文件时也是如此,需要将读取的字节串解码成字符串。

python3默认编码标准是_python3 编码相关推荐

  1. C#编码标准--编码习惯

    1. 避免将多个类放在一个文件里面. 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面. 3. 一个文件最好不要超过500行的代码(不包括机器产生的代码). 4. 一个方法的代 ...

  2. (转贴) C#编码标准--编码习惯

    看到一篇文章,里面列举了自己也有的错误,转贴之! 1.  避免将多个类放在一个文件里面. 2.  一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面. 3.  一个文件最好不要超过50 ...

  3. 谁将引领新一代视频编码标准:HEVC、AVS2和AV1性能对比报告

    2013年1月,新一代视频编码标准H.265/HEVC正式发布.然而它并没有像H.264那样占据市场.在这期间,AVS2.AV1等竞争者也在逐步推出,究竟谁才能引领新一代视频编码标准呢? 作者 | 李 ...

  4. 音视频开发(30)---新一代视频编码标准:HEVC、AVS2和AV1性能对比报告

    新一代视频编码标准:HEVC.AVS2和AV1性能对比报告 H.265/HEVC 距离H.265/HEVC标准正式发布已经有4年多的时间,虽然其压缩效率比H.264/AVC高出一倍,可以为视频公司节约 ...

  5. 谁将引领新一代视频编码标准:HEVC、AVS2、AV1性能对比报告

    原文链接:http://media.pkusz.edu.cn/achievements/?p=138 作者:李旭峰  王振宇  王荣刚 H.265/HEVC 距离H.265/HEVC标准正式发布已经有 ...

  6. AV1编码标准-算法描述

    AV1编码标准 块划分 编码块划分 变换块划分 帧内预测 定向帧内预测模式 非定向帧内预测模式 递归滤波模式 从亮度预测色度 帧间预测 运动矢量预测 空间运动矢量预测 时间运动矢量预测 运动矢量编码 ...

  7. 【Codecs系列】H.266/VVC视频编码标准 技术系列汇总

    DATE: 2020.9.30 文章目录 1.H.266/VCC标准专栏 2.H.266/VCC视频编码标准 技术汇总 1.H.266/VCC标准专栏       视音频技术之H.266/VVC 2. ...

  8. Bilibili支持了AV1编码,关于AV1编码你知道吗?

    Bilibili支持了AV1编码,关于AV1编码你知道吗? AV1编码是一种新的视频编码标准,由联合开发的开源编码器,它由英特尔.微软.谷歌.苹果.Netflix.AMD.ARM.NVIDIA和其他一 ...

  9. python3 x默认使用的编码_Python3编码问题(Python2请忽略)

    一.python程序编辑界面和运行界面通常都是默认unicode编码字符串的,编辑界面则是ascii编码的,也就是程序语句是用ascii编码的.但最困扰编程小白的不在这里,请看二. 二.python的 ...

最新文章

  1. 2018-4-8使用兔子的例子对比说明遗传算法,局部搜索,禁忌搜索,模拟退火方法
  2. redis安装步骤(单机配置)
  3. jQuery 里面的排他思想
  4. element 密码输入框用*显示_用 Java 实现天天酷跑,这个真的有点强了
  5. 检查一列数据的重复项 vba_提取重复值,但字典不是重点。
  6. 清华北大大动作上热搜了,怎么回事?
  7. api文档数据量太大崩溃_Tableau的API操作(一)-取消任务刷新
  8. spring jdbcTemplate中获取jdbc Connection并执行操作
  9. 第010讲 通配符选择器 父子选择器
  10. 40.广搜练习:洪水
  11. 大数据-05-Spark之读写HBase数据
  12. idea 新建的java项目没发run_IntelliJ IDEA 如何创建一个普通的java项目,及创建java文件并运行...
  13. ubuntu系统firefox浏览器无法播放音视频
  14. round()函数的使用方法
  15. 出席华盛顿大学以人为本用户体验设计领导力活动 探讨区块链的用户体验 | ArcBlock 活动...
  16. PLC网络流量异常检测的统计模型和神经网络模型的比较研究
  17. eclips 换工作区间
  18. MySQLWorkBench怎么设置主键自增长
  19. Invalid bound statement (not found): com.ycy.system.mapper.UserMapper.selectByPrimaryKey
  20. 《各领域机器学习数据集汇总(附下载地址)》

热门文章

  1. 红外倒车雷达原理图_汽车里的毫米波雷达你知多少?
  2. 算法提高 陶陶摘苹果(java)
  3. Java 并发编程之 ConcurrentLinkedQueue
  4. Java 蓝桥杯 阶乘计算
  5. linux 如何查看远程代码分支,linux看git 创建分支、删除本地分支、查看远程分支、本地分支例子...
  6. pytorch自定义loss损失函数
  7. 解决Mac安装LightGBM报错LightGBM and gcc 8 in MacOS: Library not loaded
  8. python filter函数 字符串_Python实现filter函数实现字符串切分
  9. 【SpringMVC】返回视图中包含数据(ModelAndView)
  10. 列表的pop()和路径拼接问题