HTML 字符编码
HTML字符编码
为了正确显示HTML页面,浏览器必须知道页面采用的是什么字符编码。
万维网(World Wide Web)最早采用的是ASCII字符集。ASCII字符集包括了0到9数字、A到Z大小写英文字母以及一些特殊字符。注意:对于ASCII(以及ISO字符集)而言,字符就采用它们在字符集里的代码来编码,所以ASCII字符集与ASCII字符编码是相同的概念。但对于Unicode字符集,它存在多种不同的编码方式,所以字符集与字符编码不能混为一谈。
由于ASCII无法支持很多国家的语言,因此现在的浏览器一般都以ISO-8859-1为默认字符编码(主要是西欧语言版,简体中文版浏览器多以GB2312为默认字符编码)。
如果网页采用的不是ISO-8859-1字符编码,那么应当通过<meta>标签指出。
ISO字符集
为不同语言定义标准字符集的工作是由ISO(国际标准化组织)来开展的。
以下列出了世界上各种正在使用的字符集:
字符集 | 描述 | 范围 |
---|---|---|
ISO-8859-1 | 拉丁字母1(西欧语言) | 北美洲、西欧、拉丁美洲、加勒比海地区、加拿大、非洲 |
ISO-8859-2 | 拉丁字母2(东欧语言) | 东欧 |
ISO-8859-3 | 拉丁字母3(南欧语言) | 南欧、世界语及其他 |
ISO-8859-4 | 拉丁字母4(北欧语言) | 斯堪的纳维亚/波罗地海国家(以及其他未包含在ISO-8859-1里的) |
ISO-8859-5 | 拉丁/西里尔语 | 采用西里尔字母的语言,如保加利亚语、白俄罗斯语、俄语及马其顿语 |
ISO-8859-6 | 拉丁/阿拉伯语 | 采用阿拉伯字母的语言 |
ISO-8859-7 | 拉丁/希腊语 | 现代希腊语及源于希腊语的数学符号 |
ISO-8859-8 | 拉丁/希伯来语 | 采用希伯来字母的语言 |
ISO-8859-9 | 拉丁字母5(土耳其语) | 土耳其语。跟ISO-8859-1相同,只是用土耳其语字母代替了冰岛语字母 |
ISO-8859-10 | 拉丁字母6(拉普兰语、北欧语、爱斯基摩语) | 北欧诸语言 |
ISO-8859-15 | 拉丁字母9(亦称拉丁字母0) | 与ISO 8859-1相似,只是用欧元符号和其他一些符号代替了一些不常用的符号 |
ISO-2022-CN | 汉字 | 中文 |
ISO-2022-JP | 拉丁/日语字母1 | 日语 |
ISO-2022-JP-2 | 拉丁/日语字母2 | 日语 |
ISO-2022-KR | 拉丁/韩语字母 | 韩语 |
Unicode标准
由于上述字符集的容量有限,不兼容多语言环境,因此Unicode联盟开发了Unicode标准。
Unicode标准涵盖了世界上的所有字符、标点及各种符号。
Unicode使得我们可以专注于文本数据的处理、存储和交换,而不必为平台、程序和语言操心。
Unicode联盟
Unicode联盟开发了Unicode标准。他们的目标是用标准的Unicode转换格式(Unicode Transformation Format,简称UTF)来取代现有字符集。
Unicode标准已经取得成功,并已在XML、Java、ECMAScript(JavaScript)、LDAP、CORBA 3.0、WML中得到实现。另外,现在许多操作系统和浏览器也都支持Unicode标准。
Unicode联盟与各主要的标准化组织(如ISO、W3C和ECMA等)均开展了合作。
Unicode可用不同的字符编码来实现,最常用的编码方式是UTF-8和UTF-16:
字符编码 | 描述 |
---|---|
UTF-8 | UTF-8中的字符可以是1到4个字节长。UTF-8可以表达Unicode标准里的所有字符。UTF-8向后兼容ASCII。UTF-8是电子邮件和网页的首选编码. |
UTF-16 | 16位的Unicode转换格式(UTF)是一种变长的字符编码,它可以表达整个Unicode字符表。UTF-16已被主流操作系统或环境所采用,比如微软Windows 2000/XP/2003/Vista/CE、Java和.NET字节编码环境。 |
提示:Unicode字符集里的前256个字母,与ISO-8859-1里的256个字符是相对应的。
提示:所有HTML 4处理器都已支持UTF-8,所有XHTML和XML处理器都支持UTF-8和UTF-16!