文章目录

  • 1. 编码的作用
    • 1. 方便和统一管理
  • 2. 常用的编码方式
    • 1. ASCII编码,英文存储到计算机里面
    • 2. GB2312编码和GBK编码,将中文存储到计算机
    • 3. Unicode字符集,将全世界的文字存储到计算机
  • 3. UTF-8 和 Unicode 的关系
    • 1. utf-8编码
  • 4. 计算机里面怎么使用编码

Unicode字符集,将全世界的文字存储到计算机

1. 编码的作用

文字或者数据存储在计算机内是二进制的方式。
但是同样一个文字或者字符 存储的二进制数值是多少,就能编码有关。

比如 甲 把 字符 A 存在电脑里 是 001
但是 乙把 字符 A 存在电脑里 是 011

这样就带来一个问题,同样是 字符A,每个人都按照自己的心情来决定 对应的二进制编码。

1. 方便和统一管理

所以为了方便和统一管理,这个时候就有一套规范,大家都遵守,比如这套规范定义 字符A 是以 111 存放在电脑里,而且是唯一的一个编号。

2. 常用的编码方式

1. ASCII编码,英文存储到计算机里面

ASCII编码表

上面的表格摘抄了一部分的 ASCII 编码。
例如 字母 D 大家都在电脑里 存储为 68, 而反过来,如果使用 ASCII 编码,发现68,也意味着这是 字母 D

2. GB2312编码和GBK编码,将中文存储到计算机

上面的ASCII 只是解决了英文怎么存储的问题,但是中文 怎么存储到计算机里面去的,也需要一套规范。

这个时候,就出现了 GBK2312, GBK, GBK18030编码。

比如汉字 的 他的 GBK编码就是 D6D0, 同样 在计算机当中如果发现 D6D0, 且使用的是 GBK编码,则会转换成汉字

3. Unicode字符集,将全世界的文字存储到计算机

各个国家的编码方式都有自己国家的标准,一旦出了国,就需要各种转换,这个感觉有点像中国人说中文,英国人说英语一样,有没有可能大家都说同一门语言呢?

编码也是一样的,为什么不能有一套标准规范,大家都遵守呢?

就在这种呼吁下,Unicode 诞生了。Unicode 也称为统一码、万国码;看名字就知道,Unicode 希望统一所有国家的字符编码。

例如上面 的汉字 的 Unicode 编码 是 4E2D

3. UTF-8 和 Unicode 的关系

这里UTF-8 和 Unicode 经常会被搞混, Unicode相当于是一套规范,规定每一个 字符汉字,对应的 编码是多少。
严格来说,字符集和字符编码不是一个概念:

  • 字符集定义了字符和二进制的对应关系,为每个字符分配了唯一的编号。可以将字符集理解成一个很大的表格,它列出了所有字符和二进制的对应关系,计算机显示文字或者存储文字,就是一个查表的过程。
  • 而字符编码规定了如何将字符的编号存储到计算机中。如果使用了类似 GB2312 和 GBK 的变长存储方案(不同的字符占用的字节数不一样),那么为了区分一个字符到底使用了几个字节,就不能将字符的编号直接存储到计算机中,字符编号在存储之前必须要经过转换,在读取时还要再逆向转换一次,这套转换方案就叫做字符编码

例如 汉字 的 Unicode 编码 是 4E2D
但是 问题是 4E2D 怎么存储到 计算机里面,它的 二进制是 0100 1110 0010 1101, UTF-8 就是一套方案, 在计算机里面怎么存储 这个二进制?

1. utf-8编码

  1. UTF-8
    UTF-8 的编码规则很简单:
  • 如果只有一个字节,那么最高的比特位为 0,这样可以兼容 ASCII;
  • 如果有多个字节,那么第一个字节从最高位开始,连续有几个比特位的值为 1,就使用几个字节编码,剩下的字节均以 10 开头。

具体的表现形式为:

  • 0xxxxxxx:单字节编码形式,这和 ASCII 编码完全一样,因此 UTF-8 是兼容 ASCII 的;
  • 110xxxxx 10xxxxxx:双字节编码形式(第一个字节有两个连续的 1);
  • 1110xxxx 10xxxxxx 10xxxxxx:三字节编码形式(第一个字节有三个连续的 1);
  • 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx:四字节编码形式(第一个字节有四个连续的 1)。

xxx 就用来存储 Unicode 中的字符编号。

例如 汉字 的 Unicode 编码 是 4E2D
二进制是 0100 1110 0010 1101, 则使用 utf-8 编码的话,16进制 是 e4 b8 ad
在计算机里存储的是 1110 0100 1011 1000 1010 1101, 也就是 需要三个字节存储
0100 11 1000 10 1101 刚好是 Unicode 的编码

下面是一些字符的 UTF-8 编码实例(绿色部分表示本来的 Unicode 编号):

4. 计算机里面怎么使用编码

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

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

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

所以你看到很多网页的源码上会有类似<meta charset="UTF-8" />的信息,表示该网页正是用的UTF-8编码。

计算机编码知识,ASCII编码,GBK,Unicode,UTF-8编码详细介绍相关推荐

  1. 计算机数据传输和信号传输,职称计算机基础知识第1章:数据传输的编码和调制技术...

    数据通信的技术基础 在数据通信中,要将数据从一个节点传送到另一个节点,必须将数据转换为信号 数据通信的编码技术 数字数据的编码方式有三种,不归零编码.曼彻斯特编码和差分曼彻斯特编码 1.不归零编码 N ...

  2. php怎么给超链接设置样式,HTML基础知识,关于超链接设置的样式的详细介绍

    这次给大家带来HTML基础知识,关于超链接设置的样式的详细介绍,设置HTML的超链接样式的注意事项有哪些,下面就是实战案例,一起来看一下. ***设置超链接的样式示例 a:link 超链接被点前状态 ...

  3. 四、字符编码:ascii、gbk、Unicode、utf-8

    编码和解码: 编码(encode)和解码(decode):计算机中储存的信息都是用二进制数表示的:而我们在屏幕上看到的英文.汉字等字符是二进制数转换之后的结果.通俗的说,按照何种规则将字符存储在计算机 ...

  4. 深入理解-字符编码ASCII,GB2312,GBK,Unicode,UTF-8

    字符编码 简介 起初再考虑写不写这篇文章,感觉这篇文章比较枯燥乏味,而且自己感觉也没理解的太透彻,就把理解的记录下来,所以这是纪念版的 前方高能,非战斗人员请迅速撤离,我要开始装逼了. Go hard ...

  5. 字符集与字符编码(ASCII、GBK、UNICODE)

    0 总结 需要注意字符集和字符编码是不同的.比如当我们提到"数据库使用的是unicode字符集",这样的说法是错误的,数据库中的数据一定要具体到某一种字符编码,只提到字符集是没有意 ...

  6. 常见的字符编码(ASCII码,unicode,utf-8,gbk)

    常见单位换算 bit 位 计算机的最小表示单位(0,1) bytes 字节 计算机最小的存储单位,缩写B 1 B = 8 bit 1 KB = 1024 B 1 MB = 1024 KB 1 GB = ...

  7. 常用字符集(ASCII,ISO8859-1,GB2312,GBK,Unicode)和字符编码(UTF-8,UTF-16)

    转自:https://blog.csdn.net/wn084/article/details/80363792 参考:https://blog.csdn.net/halchan/article/det ...

  8. 字符的编码方式 ASCII 、GBK 、UTF-8 、Unicode 、Unicode big endian

    字符的编码方式很多种 ,我们常用到的是ASCII .GBK .UTF-8 .Unicode .Unicode big endian等. 想查看的话,可以用记事本新建一个txt文档,里面输入字符或汉字, ...

  9. ASCII, GB2312, GBK, Unicode, UTF8之间的区别和联系

    原文链接:https://zhuanlan.zhihu.com/p/258345888 感谢原作者的分享~本博客仅仅是为了做笔记 计算机是美国人发明的, 早期在处理文字方面, 美国人很自然地只考虑处理 ...

  10. c语言ascii码字符集共有多少个编码,标准ascii码字符集共有多少个编码

    ascii码(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语,而其 ...

最新文章

  1. JavaFX UI控件教程(十一)之Scroll Pane
  2. Spring Cloud –基本设置
  3. 非vue子页面 调用vue父页面方法
  4. 二元函数洛必达求极限_洛必达法则的几个例子
  5. python函数和方法概念_python基础学习——函数和方法的区别与联系
  6. stackedit:浏览器内的Markdowm编辑器(资源篇)
  7. 【Python】Python第三方库安装
  8. 基于深度学习的驾驶行为预测方法
  9. Learning Shape Priors for Single-View 3D Completion and Reconstruction
  10. chrome里面模拟手机上打开网页的场景方法
  11. Android 屏幕适配:最全面的解决方案
  12. K3后台修改销售模块(销售订单、发货通知单、销售出库单)单价及金额语句
  13. OpenCV老版本下载方法
  14. 【工业互联网】工业发展的痛点体现在哪里?如何整合边缘计算与云计算的优势来成就工业智能?
  15. python 面向对象编程;(搬家具)
  16. 解决hive报错FAILED: SemanticException Cartesian products are disabled for safety的问题
  17. 解读APP新一代验证登录方式——一键登录/免密认证
  18. 短域名服务设计与实现
  19. Flink on yarn集群HA配置
  20. echarts地图中显示数字或省份

热门文章

  1. qtabwidget右键菜单_Qt5 添加右键菜单简单测试
  2. 在候选人同意之前不要浪费时间写 offer
  3. Derivative Filter(导数过滤器)
  4. 浅谈essay、paper和dissertation的区别
  5. 消费者行为学的典型营销案例
  6. 全球计算机病毒损失报告,世界十大计算机病毒 CIH的危险被公认,第二经济损失26亿美元...
  7. 洛谷 P1359 租用游艇(Floyd, Dijkstra,SPFA)
  8. linux mantis安装包,Linux下安装mantis
  9. 百度搜索引擎关键字URL采集爬虫优化行业定投方案高效获得行业流量-代码篇
  10. 移动硬盘无法退出终极解决方法