php 转换UTF-8和GB2312的URL编码
例如我们要统计一个网站由搜索引擎中带来的访问的关键词。 比如我们搜“中文”这个词,然后观察浏览器地址栏。 用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的函数,给不同编码的转换带来了方便. header('Content-type: text/html; charset=utf-8'); echo ' $urlBaidu = 'http://www.baidu.com/s?wd=%D6%D0%CE%C4'; $arrParse = parse_url($urlBaidu); parse_str($arrParse ['query'],$output); echo '乱码:' . $output['wd'] . ' //将gb2312编码转换成utf-8编码 $strUTF8 = mb_convert_encoding($output['wd'],'utf-8','gb2312'); echo '可读码:' . $strUTF8 . ' echo ' $urlGoogle = 'http://www.google.cn/search?hl=zh-CN&source=hp&q=%E4%B8%AD%E6%96%87&aq=f&oq='; $arrParse = parse_url($urlGoogle); parse_str($arrParse ['query'],$output); //谷歌关键词URL编码是utf-8,不用再作转换 echo '可读码:' . $output['q'] . ' ?> 你可以将代码复制到这里运行一下。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |