HTTP 应用程序使用字符集编码请求和显示不同字母表中的文本,它们使用语言标记根据用户所理解的语言来说明并限制内容。
字符集术语
- 字符
- 编码后的字符
- 字形
- 代码空间
- 代码宽度
- 字符库
字符
字符是字母、数字、标点、表意文字(比如汉语)、符号,或其他文本形式的书写原子。字符与字体以及风格无关。
编码后的字符集
编码后的字符集把整数映射到字符。编码后的字符集经常用数组实现,通过代码数值来索引。数组的元素就是字符。
编码后的字符集标准
- US-ASCII 字符集
- ASCII的 iso-8859 扩展
- 日文的 JIS X 0201 字符集
- 统一字符集(Universal Character Set, Unicode)
- US-ASCII 字符集:所有字符集的始祖
ASCII 的代码值只是从 0 - 127,因此只需要 7 个二进制码就可以覆盖代码空间。
HTTP 报文(首部、URI 等)使用的字符集是 US-ASCII。
- iso-8859
iso-8859 字符集标准是 US-ASCII 的 8 位超集,使用二进制码的高位增加了一些国际化书面字符。由额外的二进制码提供的附加空间(多个128个代码)还不够大,甚至都不够所有的欧洲字符使用,更不用说亚洲字符了。因此 iso-8859 为不同地区定制了不同的字符集:
- iso-8859-1 西欧语言(例如:英语、法语)
- iso-8859-2 中欧和东欧语言(例如:捷克、波兰)
- iso-8859-3 南欧语言
- iso-8859-4 北欧语言(例如:拉托维亚、立陶宛、格陵兰)
- iso-8859-5 斯拉夫语(例如:保加利亚、俄罗斯、塞尔维亚)
- iso-8859-6 阿拉伯语
- iso-8859-7 希腊语
- iso-8859-8 希伯来语
- iso-8859-9 土耳其语
- iso-8859-10 日耳曼和斯堪的纳维亚语言(例如:冰岛、因纽特)
- iso-8859-15 对 iso-8859-1的修改,包括了新的欧元字符
iso-8859-1 是 HTML 的默认字符集。
- JIS X 0201
JIS X 0201 是把 ASCII 扩展到日文半宽片假名字符的一个极小化的字符集。包含 63 个基本的片假名字符。
- JIS X 0208 与 JIS X 0212
JIS X 0208字符集是首个多字节日文字符集,它定义了 6879 个编码的字符,其中大多数是来源于中文的日本汉字。JIS X 0212 字符集又扩充了 6067 个字符。
5.统一字符集
统一字符集(Universal Character Set, Unicode)是把全世界的所有字符整合到单一的编码后字符集的环球标准化成果。
字符编码方案
字符编码方案规定如何把字符的代码数字打包装入内容比特,以及在另一端如何将其包回字符代码。字符编码方案有以下 3 种主要类型。
固定宽度
固定宽度方式的编码用固定数量的比特表示每个编码后的字符。它们能被快速处理,但可能会浪费空间。
可变宽度(无模态)
可变宽度方式的编码对不同的字符代码数字采用不同数量的比特。对于常用字符,这样可以减少需要的位数,而且还能在允许使用多字节来表示国际性字符的同时,保持对传统 8 位字符集的兼容性。
可变宽度(有模态)
有模态的编码使用特殊的 “转义” 模式在不同的模态之间切换。