高手,有关于%号的URL地址 http://www.baidu.com/s?wd=%B0%AE%D1%A7%D5%DF比如上面这个地址就是在百度搜索“爱学者”%B0%AE%D1%A7%D5%DF是怎样表示“爱学者”的??比如:我们做统计搜索关键字来源的时候就要用到,是吧。有相关的转换函数吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转载网上的东东我没兴趣研究,你看看吧理解URLEncode:URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过 Encode过的网页URL。URLEncode的方式一般有两种一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),一种是 基于UTF-8的Encode(Google,Yahoo等使用)。本工具分别实现两种方式的Encode与Decode。中文 -> GB2312的Encode -> %D6%D0%CE%C4中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87Html中的URLEncode:编码为GB2312的html文件中,http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%D6%D0%CE%C4.rar注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.编码为UTF-8的html文件中,http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarPHP中的URLEncode://GB2312的Encodeecho urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.?>除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。urlencode和rawurlencode的区别:urlencode 将空格则编码为加号(+)rawurlencode 将空格则编码为加号(%20)如果要使用UTF-8的Encode,有两种方法:一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。二、使用mb_convert_encoding函数。$url = 'http://ud03.kinoko.name/中文.rar';echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";//http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar?>实例:function parseurl($url=""){$url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));$a = array("%3A", "%2F", "%40");$b = array(":", "/", "@");$url = str_replace($a, $b, $url);return $url;}$url="ftp://ud03:[email protected]/中文/中文.rar";echo parseurl($url);//ftp://ud03:[email protected]/%D6%D0%CE%C4/%D6%D0%CE%C4.rar?>JavaScript中的URLEncode:%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar转自:http://ud03.kinoko.name/show-989-1.html 这是URL编码问题,目的是保护你传输的数据的安全。因为在?后面是用get方式进行传输的。具体可以参考PHP手册中的urlencode这部分 http://cn.php.net/manual/en/function.urlencode.php对 URL 字符串 编码,也可以用 JS 实现 http://blog.csdn.net/lne818/archive/2008/03/12/2172432.aspx %B0%AE%D1%A7%D5%DF是经过md5()加密以后的结果。此加密过程是不可逆的据说。所以说很难还原成:爱学者。 感谢,ronekyng,jackydrl,phpBoy005,lonelyriver 像百度的URL转换应该没有加密的,比如你搜索“iaixue”产生的URL是http://www.baidu.com/s?wd=iaixue就是搜索关键字中包函汉字,才生产%号的,英文和数字不会变的。像51yes像搜索关键字统计,都可以把百度搜索的关键统计出来,md5不可逆加密了估计他们也没那本事解密的。 <?php$url = 'http://www.baidu.com/s?wd=%B0%AE%D1%A7%D5%DF';echo urldecode($url);exit;?> http://www.baidu.com/s?wd=iaixue ——————————直接敲入汉字也可以的。比如你搜索“编程” 二字。在地址栏里输入:http://www.baidu.com/s?wd=编程 即可。 关于dedecms系统 一个PHP 程序员,刚上手几天的一些使用疑问? ecshop 在linux 报can't write 错误怎么解决 php远程连接mysql,十分古怪,蛋疼中.... Magento建站问题 比较好的php开源多语言商城系统有哪些啊? 框架问题?求高手 跪求dsoframer控件php网页操作如何多人同操作excel,并把数据保存到服务上 能完美解决本人原因付点费用 DISCUZ更新缓存过程的个人看法,欢迎讨论 求大牛赐教php混淆加密文件怎么解密? 有没有监视刷票的工具 求CSDN下载模块
URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu、Google等搜索引擎中输入中文查询时候,生成经过 Encode过的网页URL。URLEncode的方式一般有两种一种是传统的基于GB2312的Encode(Baidu、Yisou等使用),一种是 基于UTF-8的Encode(Google,Yahoo等使用)。本工具分别实现两种方式的Encode与Decode。中文 -> GB2312的Encode -> %D6%D0%CE%C4
中文 -> UTF-8的Encode -> %E4%B8%AD%E6%96%87Html中的URLEncode:
编码为GB2312的html文件中,
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%D6%D0%CE%C4.rar
注意:Firefox对GB2312的Encode的中文URL支持不好,因为它默认是UTF-8编码发送URL的,但是ftp://协议可以,我试过了.我认为这应该算是Firefox一个bug.编码为UTF-8的html文件中,
http://ud03.kinoko.name/中文.rar -> 浏览器自动转换为 -> http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarPHP中的URLEncode://GB2312的Encode
echo urlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.+
echo urldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
echo rawurlencode("中文-_. ")."\n"; //%D6%D0%CE%C4-_.%20
echo rawurldecode("%D6%D0%CE%C4-_. ")."\n"; //中文-_.
?>除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数。
urlencode和rawurlencode的区别:
urlencode 将空格则编码为加号(+)
rawurlencode 将空格则编码为加号(%20)如果要使用UTF-8的Encode,有两种方法:
一、将文件存为UTF-8文件,直接使用urlencode、rawurlencode即可。
二、使用mb_convert_encoding函数。$url = 'http://ud03.kinoko.name/中文.rar';
echo urlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
echo rawurlencode(mb_convert_encoding($url, 'utf-8', 'gb2312'))."\n";
//http%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar
?>
实例:function parseurl($url="")
{
$url = rawurlencode(mb_convert_encoding($url, 'gb2312', 'utf-8'));
$a = array("%3A", "%2F", "%40");
$b = array(":", "/", "@");
$url = str_replace($a, $b, $url);
return $url;
}
$url="ftp://ud03:[email protected]/中文/中文.rar";
echo parseurl($url);
//ftp://ud03:[email protected]/%D6%D0%CE%C4/%D6%D0%CE%C4.rar
?>
JavaScript中的URLEncode:%E4%B8%AD%E6%96%87-_.%20%E4%B8%AD%E6%96%87-_.%20encodeURI 不对下列字符进行编码:“:”、“/”、“;”、“?”、“@”等特殊字符。
http://ud03.kinoko.name/%E4%B8%AD%E6%96%87.rarhttp%3A%2F%2Fud03.kinoko.name%2F%E4%B8%AD%E6%96%87.rar转自:http://ud03.kinoko.name/show-989-1.html
具体可以参考PHP手册中的urlencode这部分
对 URL 字符串 编码,也可以用 JS 实现 http://blog.csdn.net/lne818/archive/2008/03/12/2172432.aspx
此加密过程是不可逆的据说。
所以说很难还原成:爱学者。
像百度的URL转换应该没有加密的,
比如你搜索“iaixue”产生的URL是http://www.baidu.com/s?wd=iaixue
就是搜索关键字中包函汉字,才生产%号的,英文和数字不会变的。
像51yes像搜索关键字统计,都可以把百度搜索的关键统计出来,md5不可逆加密了估计他们也没那本事解密的。
<?php
$url = 'http://www.baidu.com/s?wd=%B0%AE%D1%A7%D5%DF';
echo urldecode($url);
exit;
?>
————————
——直接敲入汉字也可以的。比如你搜索“编程” 二字。
在地址栏里输入:http://www.baidu.com/s?wd=编程 即可。