Web Tips 2006/05/31 21:42
有个论坛,编码是utf-8的,而网站的主页却是gb2312的编码。想把论坛里的帖子提取到首页来显示,但是编码的不一致,导致了乱码的出现。于是想到了PHP里面的iconv函数。重新编译了php,把相关的模块加载了,使用iconv("utf-8","gb2321",$str)来转化编码。发现大部分的汉字都可以正常的转换。但是一些特殊的字符,全角的标点符号等,再转换的过程中会无法转化,结果成了空字符串。相当郁闷,不知道为啥。Google了半天还是没有找到合适的答案,还是Edward提醒了我,让我用gbk的编码集看看,结果果然,使用了GBK以后,字符串就可以顺利转换过来了。

Google了一下,终于知道GBK和gb2312的区别了:
在中国,大陆最常用的就是GBK18030编码,除此之外还有GBK,GB2312,这几个编码的关系是这样的。
  • 最早制定的汉字编码是GB2312,包括6763个汉字和682个其它符号
  • 95年重新修订了编码,命名GBK1.0,共收录了21886个符号。
  • 之后又推出了GBK18030编码,共收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字,现在WINDOWS平台必需要支持GBK18030编码。
  • 按照GBK18030、GBK、GB2312的顺序,3种编码是向下兼容,同一个汉字在三个编码方案中是相同的编码。
posted on 2008-03-08 15:55  shawnliu  阅读(1451)  评论(1编辑  收藏  举报