URL中包含&字符时,出现两次转义效果
来源:互联网 发布:家庭网络连接方式 编辑:程序博客网 时间:2024/06/08 06:43
前台将URL作为参数传递给后台,传递前首先进行了一次encodeURIComponent的编码;
function urlencode (str) {
str = (str + '').toString();
return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}
后台收到却不一致;
前台输入的URL中包含的&符号,在PHP中显示为&但是其他字符显示正常;
比如:input中输入http://1.2.3.4/&.com 将其作为参数传递,
PHP收到显示为 http://1.2.3.4/&.com
后来发现在浏览器传递的时候就已经出现了错误,原有的&符号,在浏览器中显示为&amp%3b;
即出现了两次转义的效果。
首先通过encodeURIComponent进行了一次转义,之后浏览器将&又进行了一次转义。
目前PHP采用str_replace手动替换'&'为‘&’。
以下从http://outofmemory.cn/code-snippet/1271/wanmei-javascript-URLEncode-function 看到的:
当需要通过查询字符串传值给服务器时需要对get参数进行encode。
- escape()函数,不会encode
@*/+
(不推荐使用) - encodeURI()函数,不会encode
~!@#$&*()=:/,;?+'
(不推荐使用) - encodeURIComponent()函数,不会encode
~!*()
这个函数是最常用的
0 0
- URL中包含&字符时,出现两次转义效果
- url中转义转义字符
- iOS网址识别url中包含有特殊字符时需要转义
- url中包含一些特殊字符时出现Character decoding failed. Parameter [] with value []解决方法
- 网址URL中特殊字符转义编码
- 网址URL中特殊字符转义编码
- 网址URL中特殊字符转义编码
- 网址URL中特殊字符转义编码
- 网址URL中特殊字符转义
- URL中包含特殊字符时(例如+)
- day07之包含min函数的栈+查找一个字符串中第一个只出现两次的字符
- url的转义字符
- url转义字符
- URL转义字符
- url转义字符
- url转义字符
- url转义字符
- Javascript URL 转义字符
- java基础知识回顾(3)
- 2015年上半年软考最后一题设计模式回忆
- ubuntu eclipse 编写简单go语言
- php 数组函数(1)
- 第七章实验三
- URL中包含&字符时,出现两次转义效果
- opencv中mat的push_back。
- 机器学习常见算法分类汇总(转)
- 使用FileZilla Server轻松搭建个人FTP服务器
- 计算两个GPS坐标的距离 方法四 - Java语言
- XML文件解析
- 一步一步教你用PHP+MySql搭建网站 No.5 图片上传、故事删除
- 不小心修改了系统文件
- Android仿微信语音聊天