转载来源:http://blog.csdn.net/xiaogugood/article/details/8638531
以下为自己概括:
记事本编码格式
1、每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。
开始只有一种字符集,即ANSI的 ASCII字符集,用 7bits表示一个字符,能表示 128个字符。
随后进行拓展,使用 8BITS表示一个字符,能表示 256个字符,新增了有 特殊符号,比如制表符。
为了表示 其他国家 的文字,于是 开始扩展ANSI,叫做 派生字符集(也叫:多字节字符系统,MBCS,multi-byte character system)。
这些派生字符集的特点是以ASCII 127 bits为基础,兼容ASCII 127,他们使用大于128的编码作为一个Leading Byte,紧跟在Leading Byte后的第二(甚至第三)个字符与Leading Byte一起作为实际的编码。
比如 GB-2312
例如在GB-2312字符集中,“连通”的编码为C1 AC CD A8,其中C1和CD就是Leading Byte。前127个编码为标准ASCII保留,例如“0”的编码是30H(30H表示十六进制的30)。软件在读取时,如果看到30H,知道它小于128就是标准ASCII,表示“0”,看到C1大于128就知道它后面有一个另外的编码,因此C1 AC一同构成一个整个的编码,在GB-2312字符集中表示“连”。
但 随着 字符集 的变多,在国际交流中 转换字符集不方便,于是提出了Unicode 字符集
使用 固定16bits 来表示一个字符,可表示65536个字符,称为 utf-16
由于有些系统 每次只能单字节的处理,故出现了UTF-8
例如“连通”两个字的Unicode标准编码UTF-16 (big endian)为:DE 8F 1A 90
而其UTF-8编码为:E8 BF 9E E9 80 9A
2、
软件以何种方式 加载字符
检测文本最开头的几个字节,进行判断,所以可能会出错
3、
原文 还介绍了一些编码基础知识
字符
字符集
代码点
代码单元
和常见的编码方式