返回

JS 基石之字符:ASCII、GBK、Unicode、UTF-32、UTF-16、UTF-8、EncodeURI、Base64

前端

各位技艺娴熟的工程师们,大家好。今天,我们踏上字符编码的广阔天地,从 JS 的基石字符类型入手。字符编码是计算机世界与人类语言之间沟通的桥梁,它将人类可理解的字母、符号转换成计算机可处理的数字信号。

ASCII:字符编码的雏形

ASCII(美国信息交换标准代码)是计算机历史上最古老、最基本的字符编码。它将英语字母、数字和一些特殊符号编码为 7 位二进制数字。ASCII 在上个世纪 60 年代奠定了字符编码的基础,但它只能表示英语字符,对于其他语言来说力不从心。

GBK:中文编码的扩展

随着计算机在全球范围的普及,出现了对中文编码的需求。GBK(中文内码扩展规范)应运而生,它在 ASCII 的基础上扩展了中文汉字编码,支持简体中文、繁体中文和一些其他亚洲字符。GBK 的出现极大地方便了中文计算机应用的发展。

Unicode:字符编码的集大成者

Unicode 是一种更为通用的字符编码标准,它涵盖了几乎所有已知的语言和符号,甚至包括一些罕见字符和特殊符号。Unicode 使用 16 位或 32 位二进制数字来表示每个字符,确保了不同语言和平台之间的字符一致性。

UTF-32、UTF-16、UTF-8:Unicode 的变体

UTF-32 是 Unicode 的一种直接编码方式,每个字符使用 32 位二进制数字表示。UTF-16 是一种变长编码,它根据字符的不同使用 16 位或 32 位二进制数字表示。而 UTF-8 是另一种变长编码,它根据字符的不同使用 8 位、16 位或 32 位二进制数字表示。这三种编码方式都兼容 Unicode,但 UTF-8 在实际应用中更为常见,因为它更紧凑、更适合网络传输。

EncodeURI、Base64:字符编码的实用工具

EncodeURI 和 Base64 并不是真正的字符编码,而是用于特殊目的的字符编码工具。EncodeURI 将 URI(统一资源标识符)中的特殊字符编码为 % 后跟两位十六进制数字,确保 URI 在传输过程中不被误解。Base64 将二进制数据编码为 ASCII 字符串,常用于电子邮件、网络传输等场景。

掌握字符编码,沟通无障碍

字符编码是编程世界的基石,它让我们能够跨越语言和平台的障碍,实现不同系统之间的顺畅沟通。掌握字符编码的原理和各种编码方式,将极大提升我们的开发效率和跨平台协作能力。