php url gb2312 utf8,php实现utf-8与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的编码存档:

复制代码 代码示例:

header('content-type: text/html; charset=utf-8');

echo '
百度关键词url编码转换示例:
';

$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 '
谷歌关键词url编码转换示例:
';

$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'] . '
';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值