最近在网上有看到大家在接力转发44CK5Lq654mp44CL77ya5Y+R5ZOo5a2Q55qE5Lq6
这篇文章,其中程序员的做法之一就是将原文进行编码以进行传播,比如@haoel 这条Twitter就列出了不同语言的版本。
我对编码和解码不甚了解,一开始看到这样的方式有点不知所谓,于是稍微做了一些研究,将编码和解码稍微了解了一下,在这里做一个记录。
1. 字符编码
关于字符编码,比较重要的两个概念就是ASCII和Unicode,下面稍微做一个简单的概述。
ASCII
在以前,字符都是通过ASCII编码将其转换为0-127之间的数字来存储的,正好是7个bits。这里包括数字、字母、符号、指令等一些内容。比如,空格是32,字幕A是65等。
这里需要注意,一般1个字节是包含8个bits的,这就还有一个bit可以来做其他用了,这里不做过多的阐述,因为也不懂,具体可以参考Joel在这篇文章的阐述。
这里想多说一点关于bit的内容,bit可以理解为状态的变化,也就是0和1,是计算机处理的内容,是二进制。我们一般都是以十进制的方式来描述数字。对于数字,其描述方式有:
- Binary: base 2,前缀为0b或0B
- Decimal: base 10
- Octal: base 8,前缀为0o或0O
- Hexadecimal (hex): base 16,前缀为0x或0X
如:
Decimal | Binary | Octal< |
---|