之前写网页练手的一直用的GB2312编码,只知道这是中文的编码,其他的没有过多的了解。正常来讲,应该是什么编码方式就用什么编码方式解析,但是网页charset用GB2312的时候选ANSI编码时页面就可以正常显示。这使我对编码产生了疑惑,于是上网查了一下,大概弄懂了一些关于编码的知识,写在这里。
我们写下代码的时候,保存时要选择一种编码方式,windows操作系统的记事本默认的编码为ANSI,而不同国家的ANSI代表不同的编码方式,其他国家的ANSI也代表不同的编码,不同国家的ANSI是互不兼容的。所以当国际之间进行信息交流时,是无法将两个不同语言的信息存于同一ANSI编码的文本中的。中国的ANSI就代表GBK编码,而GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名,GB2312是中国规定的汉字编码,也可以说是简体中文的字符集编码,这也解释了为什么用gb2312的时候选ANSI编码时页面是可以正常显示的。
w3c上讲,我们在写网页的时候最好使用utf-8,那这又是为什么呢?首先看一下百度百科上对UTF-8的解释:
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到4个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
这里提到unicode,那unicode又是什么呢?它是跨语言跨平台的万国码,是计算机科学领域里的一项业界标准。
简单来说,GB2312是国标,UTF-8是国际标准。
GB2312属于中文编码,主要针对国内用户使用,如果国外用户访问GB2312编码的网站就会变乱码。
UTF-8是世界性通用代码,也完美的支持中文编码,如果我们做的网站能让国外用户正常的访问,就最好用UTF-8。
但是UTF-8也有缺点,UTF-8编码的文件比GB2312更占空间一些,但目前的硬件环境下可以忽略。一些门户网站为了减少服务器负载,基本上所有网页都生成了静态页,防止过高的存储成本。但我们做新的网站时,还是要首先考虑兼容,选用UTF-8编码。