中文编码
最开始计算机是采用ASCII
编码方式,只能表示英语世界里的字符。为了表示中文,GB系列编码方式相继出现,有GB2312到GBK再到GB18030,能表示的汉字越来越多。但世界上除ASCII字符和汉字外,仍有很多其他语言,如阿拉伯文,希腊文等等,因此在后来产生了统一化的表示字符集Unicode,其编码方式应用最为广泛的当属UTF-8了。上述关系可用下图来大致描述:
其实由上图我们也可以看出来,UTF-8编码方式并不兼容GB系列,因此如果在Windows的命令行(GBK编码)上显示UTF-8编码格式文件就会出现中文乱码的情况。
关于UTF-8的BOM
简单来说,在Windows下,使用Notepad++编辑文本文件时发现两种与UTF-8相关的编码方式:
- 以 UTF-8 无BOM格式编码
- 以 UTF-8 格式编码
那到底这两种编码方式有何不同呢?哪一种才是我们通常所说的utf-8编码方式呢?
实际上,在多数场合uft-8编码指的是无BOM的格式,而带BOM (Byte Order Mark)的utf-8编码则主要是微软所采用的方式。
参考链接:UTF8最好不要带BOM