教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 php实现utf-8与gb2312的url编码转换

php实现utf-8与gb2312的url编码转换

发布时间:2018-03-09   编辑:jiaochengji.com
本文介绍了php实现utf8与gb2312编码转换的方法,有关url编码转换的例子,有需要的朋友参考下。

在现在的网页应用中,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的编码存档:
 

复制代码 代码示例:
<?php
header('content-type: text/html; charset=utf-8');
echo '<br />百度关键词url编码转换示例:<br />';
$urlbaidu = 'http://www.baidu.com/s?wd=%d6%d0%ce%c4';
$arrparse = parse_url($urlbaidu);
parse_str($arrparse ['query'],$output);
echo '乱码:' . $output['wd'] . '<br />';
//将gb2312编码转换成utf-8编码
$strutf8 = mb_convert_encoding($output['wd'], 'utf-8', 'gb2312');
 
echo '可读码:' . $strutf8 . '<br />';
echo '<br />谷歌关键词url编码转换示例:<br />';
$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'] . '<br />';
 

您可能感兴趣的文章:
php实现utf-8与gb2312的url编码转换
设置php页面编码的二种方法
php iconv函数解决utf-8与gb2312编码转换问题
php url编码与解码(加密/解密)
PHP字符串编码问题分析
js与php对url编码处理实例
php iconv使用要注意的问题
php对unicode转utf-8编码
php url函数用法举例
php mb_detect_encoding检测字符串编码有误的问题

关键词: url编码  编码转换   
[关闭]
~ ~