1. 编码

一、前言

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

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

二、什么是编码?

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

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

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

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

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

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

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

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

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

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

image-20231010095700722

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

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

三、ANSI编码

ANSI编码,通俗的来说,它是一种本地编码,因为它默认使用的是你计算机所使用的编码。

更官方的说,它是一种扩展的ASCII编码。

因为它表示英文字母时,依旧使用的一个字节来进行映射,也就是0x00-0x7f的数值范围。

这里的数值采用的十六进制表示法。

而一旦超出了这个范围,那它就会开始使用后面的0x80-0xffff开始进行编码了。

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