关于 中文编码(转)

以下内容纯属吹牛, 仅仅为了展示FOB上的吹牛水平:  
1.  先说编码格式  常见的是  ASCII, GB2312 ,  GBK,  BIG5,  ISO-8859-1 ....

     1) ASCII 是最基本的了,  将26个英文字母, 英文标点符号等 转化为 计算机能认识的编码
     像字母 A 对应的编码就是  65,     
     ASCII 最大的限制就是  它只有 256个空位,   所以放下英文、标点什么的还凑合,  要放常用字都有6千的中文, 就不行了。  

     2) 计算机是外国人发明的, 人家才不管你的中文呢,  所以中国没办法, 政府组织大家弄了个能显示中文的编码  GB2312,   (GB就是国标的意思)  ;  台湾人弄的显示中文的编码就是 BIG5,  只能显示繁体

     3) GB2312 更准确的名字是  GB2312-80, 表示是80年制定的标准吧 ;   汉字是在太多了,  很快发现GB2312 的空位也不够用了,   国家又在1995年制定了 GBK 标准(GBK就是国标扩展,千万别看到字母就只会用E文套啊。。),  最近一次发现少数民族的字符也要编码,GBK不够用了, 制定了 GB18030 标准。  参考自《中文编码规则一网打尽》http://hi.baidu.com/cuifenghui/b ... a91e1c377abe31.html  
     注: 这系列的新编码都会向下兼容旧编码,  大致意思就是 旧编码中的对应关系, 在新编码中不变, 但新编码中的新字符,在旧编码中那也肯定找不到,  这是乱码产生的一种原因。   这种乱码的表现形式就是 "?" ,    即你这个编码,我不晓得怎么解, 就显示个"?", 忽悠一下你算了。  (这个也是我忽悠的。。。)

     4) 话说中国强大了,老外终于发现世界上除了26个字母外, 还有中文、日文、韩文。。。。万恶的资本主义们为了向所有的第三世界落后国家兜售他们的软件,  制定了 UNICODE 编码;   他们的想法就是用这个编码集来包括地球上所有的字符,  英文全称是: "Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称 "UNICODE";   据说最新的编码集可以容纳21亿个不同的字符,  可以用到银河联邦成立的时候。   参考自 《字符编码详解及由来(UNICODE,UTF-8,GBK)》http://www.cppblog.com/zhaoyg/archive/2010/03/31/111154.aspx

2.  再说UTF - 8
     UTF - 8 学术上不算一种编码格式, 它全称 UCS Transformation Format, 是用来在网络上传输Unicode的格式,他可以用最小的数据量来传输英文, (仅限英文,要是用来传中文,它还费流量些, 中文又被无视了。。。)


到此名词解释完毕。
正常的网站编解码过程 :   1. 用户浏览器请求你的网页,(在请求消息里附带客户端支持的编码格式,)
                                     。。。。。 这个有点说不清了。。。

总之产生乱码就两种情况: 1. 传过来的编码 找不到对应的字符,   显示为 "?"
                                     2. 你用老外的方法编码, 我用中国的方法解码, 现象一般为满屏的不认识的文字, 或者网页为白板。


针对楼主的情况分析是这样的:   因为世界上第一个编码集是 ASCII, 所以后产生的所有编码方式都向下兼容 ASCII, 理论上只要楼主的网站为全英文的(不能有全角的符号!! 全角符号算中文编码!), 就不会出现乱码。    

验证方法是:  随便找个英文网站, 更改它的字符编码,  似乎都不会变乱码~ 
posted @ 2011-01-07 16:15  thunderhao  阅读(95)  评论(0编辑  收藏  举报