字符集和编码
字符集: Unicode和ASCII都是字符集,字符集为每个字符分配一个唯一的 ID,我们使用到的所有字符在 Unicode 字符集中都有一个唯一的 ID,例如上面例子中的 a 在 Unicode 与 ASCII 中的编码都是 97。
编码规则: 有了字符集后,需要对字符的ID进行编码,utf-8就是一种编码规则。utf-8从1个字节到4个字节不等,英文字符占一个字节,中文字符占3个字节。
Unicode和UTF-8编码
Unicode是一个符号集,规定了符号的二进制代码;而UTF-8是Unicode的实现方式。
UTF-8是国际化标准文字编码,包含全世界所有国家需要用到的字符,不同的语言用到的字节数不同。
英文1个字节,中文三个字节。
GBK编码
用于解决中文编码,包含中文和英文,中文和英文都用2个字节来编码。
UTF-8不同的语言有不同的字节数,一个中文字由三个字节的编码来表示,一个中文由一个字节的编码来表示。
GBK里面不管是中文字还是英文字母,都用2个字节的编码来表示。
网页编码
如果网页是用GBK格式编码的话,一个处于美国或者其他外国地区的人访问网站的时候会显示乱码,他们需要下载额外的中文语言包来支持。
如果网页用utf-8格式编码的话则不会出现这种问题。
ANSI编码
ANSI不是某一种特定的字符编码,在不同的系统中,ANSI会表示不同的编码。美国的电脑系统中ANSI编码是ASCII编码(ASCII编码不能表示汉字,所以汉字为乱码);中国的电脑中ANSI编码可能会是GBK编码或者UTF-8编码;韩文系统中ANSI编码可能是EUC-KR编码。