在现在的网页应用中,utf-8编码和gb2312编码是并存在的,例如百度(baidu.com)和谷歌(google.com)的url编码分别是gb2312编码和utf-8编码。
由于编码并存引起的乱码问题给web应用开发中带来不少麻烦,因此统一编码是在web开发中解决这个问题的主要途径。
同时得处理utf-8编码和gb2312,例如要统计一个网站由搜索引擎中带来的访问的关键词。
比如,搜“中文”这个词,然后观察浏览器地址栏。
用baidu得到的结果是:
http://www.baidu.com/s?wd=%d6%d0%ce%c4
用google得到的结果是:
http://www.google.cn/search?hl=zh-cn&source=hp&q=%e4%b8%ad%e6%96%87&aq=f&oq=
红色的字符为“中文”这个词的url编码,即,baidu_urlencode(”中文”)=%d6%d0%ce%c4 , google_urlencode(”中文”)=%e4%b8%ad%e6%96%87 ,由于编码不同,很明显不一样。
在php中有一个mb_convert_encoding的函数,给不同编码的转换带来了方便。
例子,php源代码文档用utf-8的编码存档: