ASCII,ISO8859,ANSI,utf-8,这些名字想必大家都很熟悉,但要讲出这些字符集的区别,还真有点糊涂,我也是今天才弄明白他们的意思,特记录之。
1. ASCII, 编码结构为7位,第8位没有使用,主要包括基本的大小写字母与常用符号。其中,32-127表示大小写字符,32表示空格,32以下是控制字符。
2. ISO-8859,在ASCII编码基础上制定的编码标准。包括128个ascii字符,并新增了128个字符,用于西欧国家的符号。
3. ANSI, 代表本地编码,是为使计算机支持更多语言而实现的编码方案, 通常使用0x80-0xff范围的2个字节来表示1个字符,比如,汉字“中”,使用[0xD6,0xD0]这两个字节存储。由于各个国家有自己的编码标准,如我国用gb2312, 台湾用Big5等。这些使用2字节来代表1个字符的各种文字延伸编码方式,称为ANSI编码。
4. GB2312, 用两个数来编码汉字和中文符号,又称区位码。 GBK是对gb2312的扩充,包含2万多个字符。
5. Unicode字符集, 按其基本长度所用位数分为utf-8/16/32三种。 UTF是所有其他字符集标准的一个超集,它保证与其他字符集是双向兼容的,就是说,如果将任何文本字符串转换到utf格式,然后再翻译回原编码,也不会丢失任何信息。
a. UTF-8: 保持字母数字一个字节,其他的用不定长编码到最多6个字节,前64k的unicode编成utf-8只需3个字节。
b. UTF-16: 长度固定,用2个字节表示,超出部分用2个utf-16,即4个字节表示。UTF-32同理。
摘自杜江的《php与mysql web开发技术详解》
posted on 2010-12-07 10:45
Aaron.Chu 阅读(225)
评论(0) 编辑 收藏