Charset , Encoding
在绝大多数情况下,包括某些专业文章中,字符集和编码都统称为编码,这是因为一个字符集往往对应一种编码。但是在程序中,我们来不得半点马虎,我们应该清楚地知道字符集和编码有什么区别。以 ASP.NET 为例,Response.Charset 和 Response.Output.Encoding(只读)中的 Charset 和 Encoding 有什么区别呢?
Charset 是字符集,Encoding 是编码。
- 字符集即字符的集合,规定了在这些集合里面有哪些字符,每一个字符都有一个编号(一个整数),但这只是编号不是编码。
- 编码就规定了一个编号如何与二进制交互。
对于我们中文简体网页,一般来说有两种搭配:
- 一种是字符集是 GB2312,编码使用 ANSI。ANSI是很多编码的统称,包括GB2312,Shift-JIS,,BIG5 等等。占用磁盘空间最少,网络传输效率最高。
- 一种是字符集是 UTF-8,编码使用 UTF-8。虽然占用磁盘空间大,传输效率略低,但因为兼容面广,在应用 Ajax 以及包含多种语言文字时使用方便。鉴于此原因,现在许多网页开发工具都默认使用 UTF-8 来保存网页,比如 Visual Web Developer。