- 3
- 0
- 约4.51千字
- 约 5页
- 2017-11-20 发布于北京
- 举报
js实现php函数urlencode
js实现php函数urlencode
本文介绍了php函数urlencode的js实现方法并比较js和php各编码函数的区别。
通常form表单的enctype类型为 application/x-www-form-urlencoded, 当表单提交后,提交的数据自动被编码, 规则为 除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。, php的urlencode函数与其功能相同。
js编码方法:escape, encodeURI, encodeURIComponent。
escape可以对大多数符号进行编码,但是对unicode字符无效。
php编码方法:urlencode, rawurlencode, htmlentities。
urlencode和rawurlencode唯一的区别是对空格的编码方式不同,rawurlencode遵循RFC 1738编码将空格转换为 %20。
如何用js实现php的urlencode功能, 网上流传着一段js和vbscript混写的代码,通用性不好,另找到国外一高人写的, 经测试与urlencode相同。
代码
?1?function?URLEncode?(clearString)?{
?2???var?output?=?;
?3???var?x?=?0;
?4???clearString?=?clearString.toString();
?5???var?regex?=?/(^[a-zA-Z0-9-_.]*)/;
?6???while?(x??clearString.length)?{
?7?????var?match?=?regex.exec(clearString.substr(x));
?8?????if?(match?!=?null??match.length??1??match[1]?!=?)?{
?9?????????output?+=?match[1];
10???????x?+=?match[1].length;
11?????}?else?{
12???????if?(clearString.substr(x,?1)?==??)?{
13?????????//原文在此用?clearString[x]?==???做判断,?但ie不支持把字符串当作数组来访问,?
14?????????//修改后两种浏览器都可兼容?
15?????????output?+=?+;
16???????}
17???????else?{
18?????????var?charCode?=?clearString.charCodeAt(x);
19?????????var?hexVal?=?charCode.toString(16);
20?????????output?+=?%?+?(?hexVal.length??2???0?:??)?+?hexVal.toUpperCase();
21???????}
22???????x++;
23?????}
24???}
25???return?output;
26?}
?
?
注:上面的代码引自 /articles/code/js_url_encode_decode/
下面附上js和php几种编码方法对特殊符号的编码对照表:
?
?
Input JavaScript PHP
escape encodeURI encodeURIComponent urlencode rawurlencode htmlentities
space %20 %20 %20 + %20
! %21 ! ! %21 %21 !
@ @ @ %40 %40 %40 @
# %23 # %23 %23 %23 #
$ %24 $ %24 %24 %24 $
% %25 %25 %25 %25 %25 %
^ %5E %5E %5E %5E %5E ^
%26 %26 %26 %26 amp;
* * * * %2A %2A *
( %28 ( ( %28 %28 (
) %29 ) ) %29 %29 )
- - - - - - -
_ _ _ _ _ _ _
= %3D = %3D %3D %3D =
+ + + %2B %2B %2B +
: %3A : %3A %3A %3A :
; %3B ; %3B %3B %3B; ;
. . . . . . .
%22 %22 %22 %22 %22 quot;
%27 %27 %27
\ %5C %5C %5C %5C %5C \
/ / / %2F %2F %2F /
? %3F ? %3F %3F %3F ?
%3C %3C %3C %3C %3C lt
您可能关注的文档
- EPLAN中的符号元件部件与设备.docx
- Eqaaslu学日语记单词简单有规律.doc
- equals(Object)与的区别.doc
- ERP实施与维护实训指导书.doc
- EDA数字逻辑三人表决器.doc
- ERPMRPMRPⅡ的区别与联系.doc
- ERP创业之星局域网连入方法win7版.doc
- Excel2010工作表中插入分类汇总的嵌套级别的方法.docx
- ExcelVBAActivecell用法.doc
- Excel一次隐藏所有空列.doc
- 2026年船舶照明行业品牌建设方案报告.docx
- 2026年服务业日语培训机构运营数据分析报告.docx
- 2026年人工智能大模型在智能安防行业的商业化前景.docx
- 2026年智能交通系统行业建设应用基础设施建设报告.docx
- 2026年房地产政策优化与城市更新项目评估报告[001].docx
- 2026年宠物经济未来十年增长潜力与智能设备布局.docx
- 2026年5G远程控制应用场景拓展及产业链发展潜力报告.docx
- 2026年香蕉深加工行业国际化发展与海外市场拓展报告.docx
- 2026年啤酒行业快闪店场景消费品牌营销报告.docx
- 2026年龙眼加工行业消费者行为分析与市场洞察报告.docx
原创力文档

文档评论(0)