关于浏览器与服务器之传输编码问题我觉得首先要明确几下两个概念:
1.字符编码
关于字符编码可以衍生出很大一块内容,这里我就按照自己的理解简单说明一下。
首先我们需要知道的是任何数据在计算机里面都是以二进制形式存在的。而对于日常使用的字符(包括英文字符,中文字符,日日韩文字符等等),并不能存储在计算机中,人们为了解决这个问题就想了一个办法,就是建立一个字符与二进制数字映射的表。将每一个字符对于一个二进制数字,这样当程序读取到某一个二进制数时就能从表中找到对应的字符,从而显示出该字符。这就是字符编码的基本原理,其中最关键的地方就是那个映射表,根据映射表的不同可以分出许多不同的字符表(也就是我们常说的字符集)。
早期计算机刚刚发展的时候,因为只要表示英文字母就行,而英文字母也就26个,再加上一些其他七七八八的字符(比如括号,乘除号等等),人们就决定用8个二进制数字(能表示256个不同的字符)来制作那个映射表,也就是我们常说的——ASCII表(美国标准表,呸),到如今发展到添加了中文字符的GB2312以及GBK,更到后来试图添加世界上所有字符的UTF-8。当然要表示这么庞大数量的字符,8个二进制数字肯定是不够的,GB2312和GBK使用了2个字节(也就是16个二进制数字),UTF-8使用了3个字节(也就是24个二进制数字)。
以上就是字符编码的基本概念,我们需要明确的是字符编码意味着: 字符<——>二进制。
2.传输编码
字符编码是字符在计算机上存储的表现