字符编码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的超集。

原文地址:https://www.cnblogs.com/mimifeng/p/9473689.html