教程集 www.jiaochengji.com
教程集 >  脚本编程  >  javascript  >  正文 js中url编码参数(urlencode)用法

js中url编码参数(urlencode)用法

发布时间:2015-06-16   编辑:jiaochengji.com
本文介绍了js编程中url编码参考、urlencode的用法,有关url编码的相关实例,有需要的朋友参考下。

在js中呈现类似urlencode功能时都是自定义参数来呈现,其实js中本身就有那样的参数。
参数parameter由于用类似url的形式传过去, 所以别直接就那样赋值。

对变量值的url编码总结 :
建议用encodeuricomponent() , get 和post方法都能够发送过去
javascript中存在几种对url字符串停止编码的窍门:escape(),encodeuri(),以及encodeuricomponent()。这几种编码所起的功能各不相同。
1、escape() 窍门:
采用iso latin字符集对指定的字符串停止编码。所有的空格符、标点符号、特殊字符以及更多有联系非ascii字符都将被转化成%xx各式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此窍门编码的字符: @ * / +

2、encodeuri() 窍门:
把uri字符串采用utf-8编码各式转化成escape各式的字符串。
不会被此窍门编码的字符:! @ # $& * ( ) = : / ; ? + '

3、encodeuricomponent() 窍门:
把uri字符串采用utf-8编码各式转化成escape各式的字符串。与encodeuri()相比,那个窍门将对更多的字符停止编码,比如 / 等字符。所以假如字符串里面包含了uri的几个部份的话,别用那个窍门来停止编码,否则 / 字符被编码之后url将呈现错误。
不会被此窍门编码的字符:! * ( ) '

因此,对于汉文字符串来说,假如不期望把字符串编码各式转化成utf-8各式的(比如原页面和目的页面的charset是一致的时候),只需求应用 escape。假如你的页面是gb2312或者更多有联系的编码,而接受参数parameter的页面是utf-8编码的,就要采用encodeuri或者encodeuricomponent。

js 对文字进行编码涉及3个函数:escape,encodeuri,encodeuricomponent,相应3个解码函数:unescape,decodeuri,decodeuricomponent
1、   传递参数时,需要使用encodeuricomponent,这样组合的url才不会被#等特殊字符截断。                           
例如:<script language="javascript">document.write('<a href="http://passport.baidu.com/?logout&aid=7& u='+encodeuricomponent("http://cang.baidu.com/bruce42")+'">退出</a& gt;');</script>
2、   进行url跳转时,可以整体使用encodeuri
例如:location.href="/encodeuri"("http://cang.baidu.com/do/s?word=百度&ct=21");
3、   js使用数据时可以使用escape
例如:搜藏中history纪录。
4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeuri,encodeuricomponent编码结果相同。

最多使用的应为encodeuricomponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码。
所以如果给后台传递参数需要使用encodeuricomponent时,需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同)
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,a-z
encodeuri不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
encodeuricomponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,a-z
 
根据说明,需要encodeuricomponent函数。
据上所述
1、浏览器,表单发的url是和页面编码一致的
2、浏览器中用xmlhttp发送的url是和浏览器默认设置一致的
3、请求 url 与服务器一致则无乱码出现
 
备注:推荐使用 encodeuricomponent(), 用它编码过的 url 与 php urlencode() 函数执行结果一致,交互也最为便捷。

您可能感兴趣的文章:
PHP如何使用urlencode()函数进行url编码?(代码示例)
php urlencode()函数实现URL编码解析
php加密函数md5,crypt,base64_encode的用法介绍
js中url编码参数(urlencode)用法
php解析JSON中文乱码问题的解决方法
PHP中文URL编解码详细说明
asp.net UrlEncode对应asp urlencode的处理方法
php urlencode和rawurlencode的区别介绍
php Curl抓取远程内容出现url中文编码问题的解决方法
PHP URL传递中文乱码问题解决办法

关键词: urlencode  url编码   
[关闭]
~ ~