计算机中的编码

编码方式

前言:

很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的,于是他们把这称为"字节"。

字符集为每个字符分配一个唯一的编号,类似于学生的学号,通过编号就能够找到对应的字符。

ASCII( American Standard Code for InformationInterchange, 美国信息交换标准代码)

是基于拉丁字母的⼀套电脑编码系统, 主要⽤于显⽰现代英语和其他西欧语⾔。

ASCII码,只有256个字符,美国人倒是没啥问题了,他们用到的字符几乎都包括了,但是世界上不只有美国程序员啊,所以需要一种更加全面的字符集。

Unicode(中文:万国码、国际码、统一码、单一码)

是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得计算机可以用更为简单的方式来呈现和处理文字。

UTF-8就是Unicode的一个使用方式,通过他的英文名Unicode Tranformation Format就可以知道。

  • UTF-8:一种变长的编码方案,使用 1~6 个字节来存储;
  • UTF-32:一种固定长度的编码方案,不管字符编号大小,始终使用 4 个字节来存储;
  • UTF-16:介于 UTF-8 和 UTF-32 之间,使用 2 个或者 4 个字节来存储,长度既固定又可变。

源文件需要保存到硬盘,或者在网络上传输,使用的编码要尽量节省存储空间,同时要方便跨国交流,所以一般使用 UTF-8,这就是选择编码字符集的标准。

程序中的字符或者字符串,在程序运行后必须被载入到内存,才能进行后续的处理,对于这些字符来说,要尽量选用能够提高处理速度的编码,例如 UTF-16 和 UTF-32 编码就能够快速定位(查找)字符。

有了UTF8为什么还需要GBK

其实UTF8确实已经是国际通用的字符编码了,但是这种字符标准毕竟是外国定的,而国内也有类似的标准指定组织,也需要制定一套国内通用的标准,于是GBK就诞生了.

GB2312–>GBK–>***GB18030***是中文编码的三套方案,出现的时间从早到晚,收录的字符数目依次增加,并且向下兼容。GB2312 和 GBK 收录的字符数目较少,用 1~2个字节存储;GB18030 收录的字符最多,用1、2、4 个字节存储。

Windows 默认支持 GBK。Windows 在内核层面使用的是 Unicode 字符集(严格来说是 UTF-16 编码)

UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 UTF-8 编码

选择方案主要考虑,存储空间和处理效率的矛盾

URL编解码

网络标准RFC 1738做了硬性规定 :只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*’(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL;

除此以外的字符是无法在URL中展示的,所以,遇到这种字符,如中文,就需要进行编码。

反之,就是解码。

Big Endian和Little Endian

Big Endian 是指低地址端存放高位字节。 Little Endian 是指低地址端存放低位字节。

Java采用Big Endian来存储数据、C\C++采用Little Endian。在网络传输一般采用的网络字节序是BIG-ENDIAN。

CSV文件

你有一个TXT文件,并且各项之间以逗号分隔,那么你直接将扩展名改为CSV文件,以EXCEL打开,以逗号分隔的每一列就自动到了EXCEL的每一列中。
好处:可以轻松的导入表格和数据库中,一行代表一条数据,这样就可以批量的导入导出数据库中的值,这种文件格式经常用来作为不同程序之间的数据交互的格式。

通常如果使用文件对大量数据进行编码,可以采用此种格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*crzep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值