// by redice 2010.05.19
// redice@163.com
escape和encodeURIComponent都可以进行URL编码,我还是喜欢用后者
(1)escape会将中文数据转为%u####格式,在服务端脚本获取参数时,不能自动进行解码,比较麻烦。
例如:
客户端提交 content=escape(中国),编码后的数据为 content=%u4E2D%u56FD ,
服务器端 $_REQUEST["content"] 得到的数据仍为%u4E2D%u56FD,要想得到文明,需要调用一下下面的utf8_urldecode函数。
<?php
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\1;",urldecode($str)); // 先将%u4E2D%u56FD转换为html转义格式中国
return html_entity_decode($str,null,UTF-8); // 将html转义字符转为明文
}
?>
如下图所示:
(2)encodeURIComponent将中文转为%##格式,在服务端脚本获取参数时,会自动解码为明文,比较方便。
例如:
客户端提交 content=escape(中国),编码后的数据为 content=%E4%B8%AD%E5%9B%BD,
服务器端 $_REQUEST["content"]得到的数据即为明文的“中国”。
如下图所示:
附测试源代码:
File: Click to Download
在JSP中我也做过类似的测试,结果是一样的(JSP服务端也不会自动将%u####格式的数据解码为明文)。
ajax URL编码escape VS encodeURIComponent
[日志分享]
[日志信息]
该日志于 2010-05-19 15:49 由 redice 发表在 redice's Blog ,你除了可以发表评论外,还可以转载 “ajax URL编码escape VS encodeURIComponent” 日志到你的网站或博客,但是请保留源地址及作者信息,谢谢!! (尊重他人劳动,你我共同努力)
呵呵,谢谢
VaTG790i.最好的<a href=http://www.kyfei.com>网站推广软件</a>,
非常好
....................
;ui;普i;uighur;ui;ui;个
在unix网络编程中看到了关于TCP/IP的一些内容,我感觉还是写的不够。正在下载中,一定
下载地址呢