国际化主要包含两方面问题:
字符集编码和语言标记。
字符集
是把字符转换为二进制码的编码。
content-type
charset=ison-8859-6
告诉接收者使用指定的字符集解码算法把内容中的二进制码转换为字符。
二进制码转换为字符要经过的步骤
- 把二进制码转成字符代码,字符代码代表一个特定的字符编号,例如:65代表大写字母A
- 字符代码从编码的字符集中选择特定的元素。
如果客户端使用不是指定的字符集参数,客户端就会出现乱码。
accept-charset
告知服务器支持哪些字符系统。
编码后的字符集把整数映射到字符。编码后的字符集经常用数组来实现,通过代码数值来索引。
字符编码方案
编码方案类型:
- 固定宽度(用独定数量的比特表示每个编码后的字符,能被快速处理,但可能会浪费空间)
- 可变宽度(无模态)(对不同字符代码采用不同数量的比特,可以减少需要的位数,还能在允许使用多字节来表示国际性字符的同时,保持对传统8位字符集的兼容性)
- 可变宽度(有模态)(可以切换模态),处理起来复杂,但是可支持复杂的书写系统
常见的编码方案:
- 8位:只能支持256个字符代码范围的字符集
- utf-8:使用的无模态变宽编码。可和ASCII兼容
- iso-2022-jp:日文文档中广泛使用的编码。变宽、有模态的,所有值都不超过128位。
- euc-jp:另一种流行的日文编码,最早是为了在unix操作系统上支持亚洲字符而开发的。
标记语言
content-language
fr指定特定语言受众的媒体类型都可以由ocntent-language首部。
accept-language
允许我们把语言方面的限制和优先选择都发送给网站服务器。可以写多个,顺序按照从左到右的顺序。
国际化的URI
转义:可以在uri内部插入保留字符以及原本不支持的字符。由%+两个十六进制数字的字符。例如:将空格转成%20.
网友评论