在记事本里输入“联通”两个字并保存后,关闭记事本。双击打开这个文件,看到的不是“联通”,却是乱码,这是怎么回事呢?
原来,和字符编码有关系。
联通的ANSI编码为:
字 | 16进制编码 | 二进制编码 |
联 | c1 aa | 11000001 10101010 |
通 | cd a8 | 11001101 10101000 |
可以通过Notepad++的二进制插件查看字符的16进制编码。
再来看看UTF-8编码格式:
0000 - 007F 0xxxxxxx
0080 - 07FF 110xxxxx 10xxxxxx
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx
联通两个字的ANSI编码正好在UTF-8的0080 - 07FF范围,导致记事本误用UTF-8解析文件。