字符编码的常用种类介绍

第一种:ASCII码

ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。如下图所示:

由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A的编码是65,小写字母 a的编码是97。后128个称为扩展ASCII码。

在这里,每一位0或者1所占的空间单位为bit(比特),这是计算机中最小的表示单位,每8个bit组成一个字符,这是计算机中最小的存储单位。

常见换算单位:

bit 位,计算机中最小的表示单位

8bit = 1bytes 字节,最小的存储单位,1bytes缩写为1B

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

第二种:GBK 和 GB2312

对于我们来说能在计算机中显示中文字符是至关重要的,然而ASCII表里连一个偏旁部首也没有。所以我们还需要一张关于中文和数字对应的关系表。一个字节只能最多表示256个字符,要处理中文显然一个字节是不够的,所以我们需要采用两个字节来表示,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

第三种:Unicode

但如以来,就会出现一个问题,各个国家都一套自己的编码,就不可避免会有冲突,这是该怎么办呢?

因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

现在,分析一下ASCII编码和Unicode编码的区别:

ASCII编码是1个字节,而Unicode编码通常是2个字节。

字母A用ASCII编码是十进制的65,二进制的01000001;

字符0用ASCII编码是十进制的48,二进制的00110000;

汉字“中”已经超出了ASCII编码的范围,用Unicode编码是十进制的20013,二进制的01001110 00101101。

如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001。

但如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。

第四种:UTF-8

基于节约的原则,出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间了。如下所示:

从上面的表格还可以发现,UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。

我们总结一下现在计算机系统通用的字符编码工作方式:

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。如下图:


从http://www.cnblogs.com/schut/p/8406897.html 搬运

字符编码的常用种类介绍相关推荐

  1. 【Codecs系列】视频编码中常用熵编码介绍

    Date: 2017/10/21 Content:视频编码中常用熵编码方法介绍 1.熵编码 编码过程中按照熵原理不丢失任何信息的编码,即编码过程中不丢失信息量,保存信息熵. 熵编码是无损压缩的编码方法 ...

  2. python3 转码的函数_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  3. python文件操作解码_python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  4. python基础3之文件操作、字符编码解码、函数介绍

    内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: 1 #/usr/bin/e ...

  5. 视频编码中常用熵编码介绍

    原文:https://blog.csdn.net/SoaringLee_fighting/article/details/78303747 熵编码 数据压缩编码的概念: 编码是用一些简单的字符来表达一 ...

  6. Python常用字符编码

    1. 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字 ...

  7. Python常用字符编码(转)

    Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标 ...

  8. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  9. Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

最新文章

  1. 计算机视觉常用图像数据集标记平台
  2. 基于StringTemplate的视图
  3. php 协程怎么用,PHP yield 协程 生成器用法的了解
  4. CSS3之伪元素选择器和伪类选择器
  5. Maven报错“未结束的字符串字面值”
  6. Hadoop安装记录
  7. C# 从1到Core--委托与事件
  8. Flink on Yarn运行机制
  9. C语言课后习题(10)
  10. mysql入门到跑路_MySQL 24小时入门笔记(3),插入和删除,删库到跑路
  11. 边界布局BorderLayout源码解析
  12. xugu clob字段如何导出_如何优雅的导出EXCEL
  13. 从零实现爬虫和情感分类模型(一)
  14. mysql-5.7.12安装
  15. Per-cpu 变量
  16. linux下RRDTool安装方法
  17. 供应商层次分析法判断矩阵(文末附软件)
  18. docucentre s2011默认登录密码
  19. 如何发布ArcGIS Server离线地图(google 瓦片)
  20. Centos7 Google输入法安装

热门文章

  1. 蜂鸟E203软件环境的搭建(一)
  2. msf拿到shell显示乱码解决方法以及chcp各种编码的补充
  3. 计算机上面的按键作用,鼠标侧键有什么用 鼠标上各按键的功能是什么
  4. Cesium 根据经纬度获取地形高程
  5. java编写奇数偶数,java基础奇数偶数判断
  6. SpamSieve for Mac(垃圾邮件过滤软件)
  7. java web属于什么语言_java web开发是什么
  8. 去哪找到高薪工作怎么找
  9. 在Amazon SageMaker上快速、灵活构建TensorFlow模型的在线推理服务
  10. pthon之异常、文件练习题