ASCII编码
https://baike.baidu.com/item/ASCII/309296
1. ASCII 字符集
全称:American Standard Code for Information Interchange
美国信息交换标准代码
整合了128个字符
33个控制字符
10个数字字符
26个大写字母
26个小写字母
33个其他字符:例如运算符
2. 字符编号
从0-127,即00000000到01111111
3. 字符编码
ASCII码是 单字节编码,一个字节8位,但是只使用到7位,
首位固定为0。
拓展:关于换行符
windows的换行是回车,CR + LF,也就是0x0d + 0x0a,转义字符为:\r\n
linxu的换行是LF
mac的换行是CR
疑问1.为什么大写字母在前,小写字母在后?
可能是因为 拉丁字母,最开始只有大写字母,小写字母是后面出现的。
疑问2.为什么前32个都是控制字符,然后是可见字符,最后一个又是控制字符del呢?
因为早期的计算机是用纸袋打孔来记录数据的,比如要记录大写字母A,他的二进制是 0b01000001,那么纸带上就需要打两个孔。
如果我发现这个字母打错了,想要把他删掉,怎么做,总不能把孔补上吧?
于是干脆把孔都打上,表示原先的字符被删除了。也就是01111111表示删除,当计算机识别到7个孔,就知道原先的字符被删除了。
这就是为什么ASCII 编码中,del这个字符在最后了。
疑问3.ASCII是单字节编码,首位为0。如果首位故意置为1会怎么样?
如果首位为1的话,就不是标准的ASCII码的正确的字符编码,会显示为乱码。
4. 演示
在 notepad++ 中输入 ABC,然后使用插件查看:
可以看到显示的是他们的ASCII码的十六进制:41、42、43
然后输入一个回车,再用插件查看
可以看到是两个字节 0d 0a。注意在这个插件右边的Dump中,控制字符显示为英文的句号。
如果此时手动输入00,01,也就是ASCII字符集中的前两个字符 再切回去会怎么显示?
一般的编辑器,控制字符是不会显示的,但是notepad++就直接显示了控制字符的缩写的图像。
如果手动输入0x80,也即是0b10000000,如果首位为1的话,就不是标准的ASCII码的正确的字符编码,应该会显示为乱码。
一般的编辑器会乱码,但是notepad++,就直接将十六进制显示出来了,可以注意到在插件的dump中,已经乱码了,这个了解一下即可。
我们用普通的notepad打开,可以看到乱码了:

被折叠的 条评论
为什么被折叠?



