这次一定要讲清 ASCII & Unicode!!!

字符是人类语言中的最小单位,比如:英文 A、汉字 中、符号 @、数字 1。

💡字符编码标准的产生原因

计算机存储和运算所有数据都要使用二进制表示,所以符号、字母、数字这些都要用特定的二进制表示,但如果想要相互通信,就得使用相同的编码规则。

目前的文字编码标准ASCIIGB2312GBKUTF-8 等。

  • ASCII:最简单最早的西文编码方案
  • GB2312、GBK:汉字字符编码方案的中国国家标准
  • UTF-8:Unicode 的其中一种编码标准,兼容 ASCII

字符集 则是一组字符的集合,集合本身不规定 编码方式,仅定义了有哪些字符存在。

常见的字符集有:ASCII 字符集、GB2312 字符集、GBK 字符集、Unicode 字符集。

所以 ASCII、GB2312、GBK 既是编码方式,又是以其命名的字符集

Unicode 仅是字符集,UTF-8、UTF-16、... 是它的编码方式之一

ASCII

ASCII ,美国信息交换标准代码,它是基于拉丁字母的电脑编码系统,主要用于显示现代英语和其他西欧语言,共定义了 128 个字符(扩展码有 256 个)。

ASCII 码使用指定的 7 位8 位 二进制数组合来表示 128 或 256 种可能的字符。

ASCII 码对照表

常见 ASCII 码的大小规则:0~9 < A~Z < a~z

常见字母的 ASCII 码大小:"A" 为 65、"a" 为 97、"0" 为 48

Unicode

Unicode 是为了解决传统的字符编码方案的局限而产生的。

计算机 8 位 1 字节 ,1 字节能表示的最大整数就是 255。ASCII 码占用了 0-127 表示数字、英文字母和一些符号。但如果要表示中文,显然一个字节是不够的,至少需要两个字节,还不能和 ASCII 码冲突,所以中国制定了 GB2312 标准把中文编进去。

那类似的,日文、韩文等等,世界各国的文字都存在这种问题。于是 Unicode 诞生,统一了所有的文字编码,它为每种语言的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换的需求。

ASCII 是 Unicode 的子集

Unicode 通常用两个字节表示一个字符 ,原有的英文编码从单字节变成双字节,只需要把高字节 全部填为 0 就可以。Unicode 有多套编码方案,常用的有:UTF-8、UTF-16、UTF-32。

javascript 复制代码
'中国123'.charCodeAt(0);		// 20013
'中国123'.charCodeAt(1);		// 22269
'中国123'.charCodeAt(2);		// 49
'中国123'.charCodeAt(3);		// 50
'中国123'.charCodeAt(4);		// 51

写在最后

One day you'll leave this world behind. So live a life you will remember! --- Avicii

我是暮星,一枚有志于在前端领域证道的攻城狮。

优质前端内容持续输出中......,欢迎点赞 + 关注 + 收藏

相关推荐
2501_9209317018 分钟前
React Native鸿蒙跨平台医疗健康类的血压记录,包括收缩压、舒张压、心率、日期、时间、备注和状态
javascript·react native·react.js·ecmascript·harmonyos
落霞的思绪33 分钟前
配置React和React-dom为CDN引入
前端·react.js·前端框架
Hacker_Z&Q34 分钟前
CSS 笔记2 (属性)
前端·css·笔记
Anastasiozzzz42 分钟前
LeetCode Hot100 295. 数据流的中位数 MedianFinder
java·服务器·前端
橙露1 小时前
React Hooks 深度解析:从基础使用到自定义 Hooks 的封装技巧
javascript·react.js·ecmascript
Exquisite.1 小时前
Nginx
服务器·前端·nginx
2501_920931701 小时前
React Native鸿蒙跨平台使用useState管理健康记录和过滤状态,支持多种健康数据类型(血压、体重等)并实现按类型过滤功能
javascript·react native·react.js·ecmascript·harmonyos
打小就很皮...2 小时前
dnd-kit 实现表格拖拽排序
前端·react.js·表格拖拽·dnd-kit
Ulyanov2 小时前
从静态到沉浸:打造惊艳的Web技术发展历程3D时间轴
前端·javascript·html5·gui开发
打小就很皮...2 小时前
React 19 + Vite 6 + SWC 构建优化实践
前端·react.js·vite·swc