字符编码GBK、GB2312和UTF-8的区别与联系
在计算机系统内,文本信息的存储使用的ASC II码。
什么是ASC II码呢?
ASC II码全称是“美国信息交换标准代码”,从字面上我们就能知道,这是一套用于显示英语和西欧语种的编码体系。
它包含常用的英文字母、数字及一些特殊字符和控制符等共计127个字符,是最通用的单字节编码系统,即一个字符对应一个唯一的ASC II码。
随着个人计算机在全球的普及,很明显单字节的字符编码根本不能满足各个国家、各个语种的编码和显示需求,这个时候就需要针对不同语种定制不同的编码规范。
GBK、GB2312以及UTF-8就是在这种条件下诞生的。
先来看看GB2312和GBK这两种中文编码规范。
GB指代的“国标”,即“国家标准”。
GB2312包含了常用的中文字符,同时也兼容ASCII码。在这种编码规范中,ASCII码占一个字节,码值在0~127之间;中文字符占两个字节,码值在127~256之间。
GBK兼容GB2312编码,但比GB2312包含了更多的汉字:中文存储时,第一个字节码值在127~256之间,第二个字节码值在0~256之间。
再来看看UTF8编码。
UFT8是一种国际化的编码方式,包含了世界上大部分的语种文字,也兼容ASCII码。
这类标准依据文字的不同,使用1~6个字节来存储字符,是一种多字节的编码规范。它对英文使用一个字节(8位)存储,对中文使用三个字节(24位)存储。
在WEB编码格式的使用上应该如何选择呢?
编码格式的选择主要在于文本内容和面向的用户范围。
UTF8是国际通用编码,适用范围更广,如果文本内容的英文字符较多或者注重多国用户体验的网站,UTF8是首选。
但UTF8占用的数据库比GBK大,如果基本上需要显示中文字符,可以考虑适用GBK编码,毕竟它是GB2312的超集。