发表于: 2007-12-05 12:16:20

 

在网上找到资料说通过javascript传递参数时如果用了encodeURIComponent函数对参数进行编码,在PHP里面需要用 rawurldecode函数解码,但是我做实验的时候发现在PHP里面直接打印encodeURIComponent编码后的字符串都能正确显示(使用 rawurldecode解码后打印出来的也显示正常),我想是不是apache或者PHP哪里有这个控制选项可以自动进行解码?请教高人指点?

 
 
 
URI编码是规范,现在很多WEB服务器都是自动编码,解码。
http://www.ietf.org/rfc/rfc2396.txt
格式是:"%" hex hex
如果解码过一次,没有%XX当然再解码也没有意义,但是如果自动解码,就不要自己手动解码,多此一举,而且还可能是错的。
没有必要弄个选项控制要不要解码,就好比你家的电话,没有一个笨蛋会对电信说不要把对方的声音变成声音,传个音频流给我就行了,除非你自己想做个电话。
如果你真的想自己解码,就不要用PHP,自己写个Apache模块,全部都是你自己解码,甚至包括HTTP包。

自动解码,编码应该是PHP模块自己处理的,因为Perl就没有自动解码,需要自己调用CGI模块解码。

 
用encodeURIComponent不需要解码。。直接使用,犀牛书推荐使用这个。。。
为什么??看 http://www.google.cn/search?hl=zh-CN&q=encodeURIComponent&btnG=Google+%E6%90%9C%E7%B4%A2&meta=

至于用encodeURIComponent编码过的,你用rawurldecode解码还是正常,,原因是没有解码的内容。。。

rawurldecode
对已编码的 URL 字符串进行解码 (PHP 3, PHP 4, PHP 5)

string rawurldecode ( string str )

说明
返回字符串,此字符串中百分号(%)后跟两位十六进制数的序列都将被替换成原义字符。

关于rawurldecode PHP自动解码的更多相关文章

  1. MVC 接收参数时会自动解码

    MVC在接收传递过来的参数时,会自动对参数进行解码,无需手动解码 例: public ActionResult SendMsg2(string name) { return Content(name) ...

  2. java编码解码乱码问题

    服务器设值(中文)到界面使用了两次编码: String pageJson=URLEncoder.encode(URLEncoder.encode(str,"GBK"), " ...

  3. 编解码-marshalling

    JBoss的Marshalling序列化框架,它是JBoss内部使用的序列化框架,Netty提供了Marshalling编码和解码器,方便用户在Netty中使用Marshalling. JBoss M ...

  4. 编解码-protobuf

    Google的Protobuf在业界非常流行,很多商业项目选择Protobuf作为编解码框架,Protobuf的优点. (1)在谷歌内部长期使用,产品成熟度高: (2)跨语言,支持多种语言,包括C++ ...

  5. 编解码-java序列化

    大多数Java程序员接触到的第一种序列化或者编解码技术就是Java的默认序列化,只需要序列化的POJO对象实现java.io.Serializable接口,根据实际情况生成序列ID,这个类就能够通过j ...

  6. URL编码与解码

    在项目中碰到了ajax传来的参数,后台接收值乱码(如下图)的问题 在此记录一下 前台: 后台: 解决问题 为什么需要编码 怎样编码 实际出现的问题解决方法 1.为什么需要编码? URL 只能使用 AS ...

  7. C# QRCode、DataMatrix和其他条形码的生成和解码软件

    今天制造了一个C#的软件,具体是用于生成二维码和条形码的,包括常用的QRCode.DataMatrix.Code128.EAN-8等等. 使用的第三方类库是Zxing.net和DataMatrix.n ...

  8. JavaScript字符集编码与解码

    一.字符集 1)字符与字节(Character) 字符是各种文字和符号的总称,包括乱码:一个字符对应1~n个字节,一字节对应8位,每位用0或1表示. 2)字符集(Character Set) 字符集是 ...

  9. (中级篇 NettyNIO编解码开发)第八章-Google Protobuf 编解码-2

    8.1.2    Protobuf编解码开发 Protobuf的类库使用比较简单,下面我们就通过对SubscrjbeReqProto进行编解码来介绍Protobuf的使用. 8-1    Protob ...

随机推荐

  1. SharePoint 数据库管理-PowerShell

    1. 显示所有SharePoint数据库 Get-SPDatabase –ServerInstance "SP2010\SQLSharePoint" 2. 获取指定的数据库 $da ...

  2. reboot 后 Docker服务及容器自动启动设置

    https://blog.csdn.net/wxb880114/article/details/82904765 重启reboot操作系统后,发现docker 服务未启动,容器也未启动,天生反骨,怎么 ...

  3. L224

    Astronomers have revealed details of mysterious signals emanating from a distant galaxy, picked up b ...

  4. 漂亮的各种弹出框 sweet alert

    Sweet Alert 是一个替代传统的 Alert 的提示效果.SweetAlert 自动居中对齐在页面中央,不管您使用的是台式电脑,手机或平板电脑看起来效果都很棒. 还带下拉 几种 动画效果 弹窗 ...

  5. GSM信道分类

    GSM是一个数字峰窝无线网络,它采用时分多址(TDMA)技术,在一个网络信道中支持多组通话.时分多址技术将一个GSM信道分为多个时隙(时间段),然后将这些时隙分配给移动电话用户,其中,分配给同一个用户 ...

  6. 在C#中如何定义一个变长的结构数组?如果定义好了,如何获得当前数组的长度?

    用ArrayList,他就相当于动态数组,用add方法添加元素,remove删除元素,count计算长度

  7. APP测试重点罗列

    1.安装和卸载 应用是否可以在IOS不同系统版本或android不同系统版本上安装(有的系统版本过低,应用不能适配) 软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里. 安装过 ...

  8. JMeter中各种请求格式--aduocd的博客

    背景:1.在JMeter的HTTP请求的测试中,经常会使用到不同的请求格式.常用的格式如,json,form-data,x-www-form-urlencoded,multipart/form-dat ...

  9. HDU 4862

    http://acm.hdu.edu.cn/showproblem.php?pid=4862 #include <iostream> #include <cstdio> #in ...

  10. php curl批处理

    php模拟多线程用到curl库,这个库很强大,可以做好多事,比如模拟登陆,文件上传/下载,数据采集等. 下面是我的代码,很简单,有些还功能还不会用. <?php $node_urls=array ...