字符集基础

    |     2017年8月31日   |   数据库   |     0 条评论   |    818

计算机只认识 0 和 1。无论在内存还是外存,我们看到的文字、图片、视频,在机器里都是二进制。不同字符对应二进制的规则,就是字符编码;编码的集合称为字符集。

要准确处理各种文字,必须先编码。常见的有 ASCII、GB***、Unicode。

一、ASCII 编码

ASCII(American Standard Code for Information Interchange)是基于拉丁字母的电脑编码系统,主要用于显示现代英语和其他西欧语言,是最通用的单字节编码。

它收录空格及 94 个「可印刷字符」,够英语用。其它使用拉丁字母的语言(主要是欧洲)还有附加符号字母,可以用 ASCII 及控制字符以外的区域来存。扩充 ASCII 为不同国家和地区制定了十多套(均为拉丁字符集,高位为 1 的 8 位代码),称为 ISO 8859,又称扩充 ASCII 字符集。Latin1 是 ISO-8859-1 的别名。

二、GBK 等汉字编码

ASCII 最大的缺点是能显示的字符有限:西欧语言勉强能扩,其它语言就无能为力。计算机用得越广,这个缺陷越明显,各国必须设计符合本国的编码。要显示中文,就要把汉字转成计算机能接受的数字。

  • GB2312:用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆。
  • GBK:全称《汉字内码扩展规范》,向下兼容 GB2312,向上支持 ISO 10646.1,是前者向后者过渡的承上启下标准。

三、Unicode 编码

各国编码互不兼容(中文就有 GB2312、GBK、GB18030),本地没问题,一上网就乱码。为解决这个问题出现了 Unicode(统一码、万国码、单一码):为每种语言的每个字符设定统一且唯一的二进制编码,满足跨语言、跨平台的文本转换和处理。

Unicode 是字符集,实现方式有多种,如 UTF-8、UTF-16。互联网上用得最广的是 UTF-8;UTF-16、UTF-32 在网上基本不用。再强调一遍:UTF-8 是 Unicode 的实现方式之一。

编码 特点 适用
ASCII 单字节;空格 + 94 可印刷字符 英语;扩充为 ISO 8859 / Latin1
GB2312 / GBK GBK 向下兼容 GB2312 中文信息交换与内码扩展
Unicode / UTF-8 统一码;UTF-8 是实现方式之一 跨语言、跨平台,互联网最常用

一句话总结:字符集是「字符怎么变成二进制」的规则;本地可用 GBK,上网请用 Unicode 的 UTF-8,避免乱码。

转载请注明来源:字符集基础
本文链接地址:https://ai.zhousir.top/?p=2150

上一篇:

下一篇:

回复 取消