character-encode
Text Encode & Decode
ASCII
ANSI(美国国家标准学会) 推出了 ASCII
ASCII 包括 0-9 a-z A-Z !”#$%… 控制字符
码点 code point
每个字符对应的数字
ASCII: 0-127(2^7)
字符集 charset
标准所支持的所有字符及其对应码点的集合,称之为字符集
编码 encode
从字符到计算机存储的的二进制的过程,称之为编码
字符编码规则不一定会把码点直接转换成二进制存储在计算机中
在 ASCII 和 UTF-32 中,会把码点直接转换为二进制
Unicode
囊括了各国文字、Emoji、象形文字的字符集
UTF-32
每个字符使用 4 字节存储,不够 32 bit 的向前补零
UTF-8
Unicode 的可变长度编码,码点越大,编码后的二进制越长
乱码的原因
- 编码规则与解码规则不同
- 部分编辑器将 Unicode 中无法识别或展示的字符自动替换为特殊符号,在保存文件时,将 EF BF BD 写入
- Unicode 字符集中有一个特殊的替换符号,专门用于表示无法识别或展示的字符
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 xhj的博客!