计算机常用编码小知识

为什么会有编码

对于个人理解,就是电脑跟人类语言相互转换的一个中间对应表,人类语言(各国语言文字,标点符号,特殊控制符)要记录到电脑或是机器中,转变成数字信号,那么就需要这么一个统一的规范,标准。
用一个简单的文字表达就是

保存过程
人类语言字符—>编码—>2进制
读取过程
2进制—->编码—>人类语言字符

目前一些常用的编码及解读

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)

算是最基础的编码,是一个8bit组合,也就是2的8次方,是一个包含了256个对应字符的编码。
前面的0~127位字符,是基础编码,是统一的,大概包含了0-9的数字,a-z的英文字母的大小写,以及一些美国的标点符号等。
后面的128-255位字符,属于拓展编码,内容就是每个地区国家自由定义的内容了。(这部分编码不属于ASCII编码)
具体每一位的编码对应,可以搜索引擎搜索一下,应该很容易查到。

GBK(汉字内码扩展规范)

我国制定推出的编码,专门针对于中文,而且兼容ASCII。
GB2312、GBK、GB18030,这几个都是中文编码方式。
GB2312包含7000多个汉字和字符,GBK包含21000多个,GB18030是27000多个。

Unicode (统一码、万国码、单一码)

这是囊括了世界上所有字符的一个编码,也就解决了所有国家地区内容相互转换出现乱码的问题。
Unicode用了21bit组合来编码一个字符,那么一个字符保存下来占用的空间就比较大了,也对读取,转换增加了计算量。
然后便有了编码转换格式,Unicode的实现方式称为Unicode转换格式(Unicode Transformation Format,简称为UTF)。UTF-8,UTF-16,UTF-32是三种不同的编码方式。
简单的来说,这三种格式转换,也就是对不同范围的Unicode编码,进行转码,以此来动态的改变存储的空间。
至于更详细的转换中的补齐方式,可以搜索详细研究。

至于各种编码的特性,国际通用性最好的还是UTF-8,广泛用于浏览器。
Swift 5也将字符串的首选编码从UTF-16切换为UTF-8。
对于编码,很多的在线转码网站,日常使用很方便。
以上便是编码的一些小知识。如果有兴趣,可以深入研究。

你可能感兴趣的:(计算机常用编码小知识)