6. 编码原理与Unicode详解

1 前言

无论学习什么语言,只要涉及到了实际开发程序,并且需要处理外部数据的时候,编码都是一个大问题。

而很多人,尤其是初学者,又很难搞清楚这个问题,所以本文就来详细介绍一下编码。

编码主要体现在字符串中,更确切的说,应该是体现在屏幕上,因为字符串在内存中本质上也只是一堆数字。

如果很难理解,但你已经有了一点编程基础,建议你阅读一下该文:数据类型,相信会让你有不一样收获。

这是一个非常重要的点:计算机只能存储二进制数字

而为了让数字在屏幕上显示出来成为字符,就出现了编码这一概念,它的作用就是将字符数字进行映射。

比如常见的 ASCII码表,就是将数字65映射成为了字符A,数字48映射成为了字符0

但遗憾的是,ASCII码表只映射了128个字符,也就是以英文为标准的所有字符、字母,因为电脑就是美国发明的,英文只需要这么多个字符就足够了。

所以最初的字符只需要一个字节就可以表示了,也就是8位,虽然事实上只需要7位,甚至不到一个字节( 27=1282^7=12828=2562^8=256),但为了对齐、同时为以后继续添加其它字符预留空间考虑,最终使用了一个字节。

随着后面全球化的进程,其它国家都想使用电脑,但各个国家的母语又不全部是英语,这怎么办?

就以咱中文来说,常用的汉字就有几千个,你一个字节肯定不够用。

所以各个国家就开始自己搞自己的编码页了,也就是我们在windows电脑的记事本中,常能看到的一个叫做ANSI的编码:

image-20231010095700722

其中记事本右下角的为当前打开文件所使用的编码,当然你也可以将其另存为其它编码,比如上图就是我电脑当前可用的编码。

其它编码后面再提,我们先来看看ANSI编码是怎么回事。

2 ANSI编码

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux