电脑中一个字符大都用八位数的二进制数字表示,标准的ANSI编码规范规定0~127总共128个数字代表信息(字母,数字,标点,控制码,空格等),剩下没用到的128个编码没用做规定,不同国家地区制定了不同的标准,由此产生了GB2312,BIG5以及JIS等各自的编码标准。这些使用 2 个字节(0x80~0xFF范围内)来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 ISO-8859-1(2,3...)是欧美以及拉丁地区的编码方式,通过使用剩下的128位来扩充自己国家语言的编码 事实证明,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间 我们通过UrlEncode函数即可得到汉字的编码,比如对ANSI编码的asp代码,和UTF-8编码的asp代码执行urlecode得到的结果就不一样。
下面再看看ansi,unicode,unicode big endian,utf8编码的文件用十六进制打开的样子:同样的文本“a花心”
可以看出第一种编码方式全部都是文本信息,后面三种都有头部表示自己的信息,所以ANSI中也没有用FE FF来编码的汉字(为了不冲突)UNICODE中对字母的编码也是采用了2个字符,增加了冗余。我们比较ANSI和UTF-8编码的格式,可以看到正好就是我们urlencode后的结果 |
|