字符编码是一种将字符(如字母和符号)转换为计算机能够理解的数字代码的方法。每种编码方式都有自己的字符集,其中包含了一组字符和它们对应的数字代码。例如,ASCII 编码使用 7 位二进制数来表示 128 个字符,包括大小写字母、数字和标点符号。
但 ASCII 编码是不够的,尤其对于亚洲文字字符。好在我们有 Unicode。
Unicode 是一种字符编码标准,旨在为世界上所有语言的字符提供唯一的数字表示。在 Unicode 出现之前,存在许多不同的编码方式,每种编码方式都有自己的字符集。这导致了字符编码的混乱局面,使得在不同的计算机系统和语言之间交换文本变得困难。Unicode 为每个字符分配一个唯一的数字代码,称为“码位”。Unicode 联盟已经确定了每个字符的码位,并且可以在 Windows 的字符映射工具或 Unicode 网站上找到它们。码位以 U+ 开头,后面跟着十六进制数字。例如,U+0639 是阿拉伯字母 Ain,而英文字母 A 是 U+0041。
UTF-8 是一种 Unicode 编码方式,用于将 Unicode 码位存储在计算机内存中。Unicode 定义了一个庞大的字符集,其中包含了世界上几乎所有语言的字符。每个字符都分配了一个唯一的数字代码,称为“码位”。但是,Unicode 本身并没有规定如何将这些码位存储在计算机内存中。 UTF-8 是一种可变长度的编码方式,它使用 1 到 4 个字节来表示每个码位。对于 ASCII 字符(码位在 0-127 之间),UTF-8 使用一个字节进行编码,与 ASCII 编码相同。对于其他字符,UTF-8 使用 2 到 4 个字节进行编码。
如果不知道字符串所使用的编码方式,就无法正确地显示。在 HTML 中,可以使用下面的方法指定编码方式:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
在不知道 HTML 文件的编码方式之前,如何读取它呢? 事实是几乎所有常见的编码方式都对 32 到 127 之间的字符采用相同的方式处理,因此几乎任何情况下都可以读取 HTML 页面的前面部分。