【转】javascript中的urlencode

原文地址:http://www.cnblogs.com/baibaluo/archive/2011/03/03/2071250.html

 

javascript可以使用的内置函数有

encodeURI()

encodeURIComponent()

他们都是用utf-8的编码方式

 

encodeURI(),用来encode整个URL,不会对下列字符进行编码:+ : / ; ?&。它只会对汉语等特殊字符进行编码

encodeURIComponent (),用来enode URL中想要传输的字符串,它会对所有url敏感字符进行encode

在对url做encode操作时,一定要根据情况选择不同的方法。

例如url = 'www.xxx.com/aaa/bbb.do?parm1=罗'

此时可以用encodeURI(url)

当你的参数中包含+ : / ; ?&请使用 encodeURIComponent 方法对这些参数单独进行编码。

例如url = 'www.xxx.com/aaa/bbb.do?parm1=www.xxx.com/ccc/ddd?param=abcd'

encodeURI(url)绝对无法满足要求,因为param1=www.xxx.com/ccc/ddd?param=abcd,这个参数是不能按照我们的要求encode的,

此时应该这样单独对参数进行encode

url = 'www.xxx.com/aaa/bbb.do?parm1=' + encodeURIComponen('www.xxx.com/ccc/ddd?param=abcd')


编码后的url的值为

www.xxx.com/aaa/bbb.do?parm1=www.xxx.com%2Fccc%2Fddd%3Fparam%3Dabcd

此时接受此请求的服务端就能够成功取得param1=www.xxx.com/ccc/ddd?param=abcd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript,可以使用`encodeURI()`和`encodeURIComponent()`函数来进行URL编码。其,`encodeURI()`函数用于对整个URL进行编码,而`encodeURIComponent()`函数则用于对URL的参数进行编码。这两个函数都是按照UTF-8编码规则进行编码的。 以下是使用`encodeURIComponent()`函数对URL参数进行编码的例子: ```javascript var url = "http://www.example.com/search?q=JavaScript urlencode 编码"; var encodedUrl = encodeURIComponent(url); console.log(encodedUrl); // 输出:http%3A%2F%2Fwww.example.com%2Fsearch%3Fq%3DJavaScript%20%E4%B8%AD%E7%9A%84%20urlencode%20%E7%BC%96%E7%A0%81 ``` 如果需要按照ANSI编码规则进行URL编码,可以自己编写代码实现。以下是一个使用VBScript自定义函数实现ANSI编码的例子: ```javascript function encodeUrl(url) { var shell = new ActiveXObject("WScript.Shell"); var encodedUrl = shell.ExpandEnvironmentStrings("%TEMP%\\encodedUrl.txt"); var fso = new ActiveXObject("Scripting.FileSystemObject"); var file = fso.CreateTextFile(encodedUrl, true); file.Write(url); file.Close(); var encodedUrlContent = shell.Exec("cmd /c cscript //nologo encodeUrl.vbs " + encodedUrl).StdOut.ReadAll(); fso.DeleteFile(encodedUrl); return encodedUrlContent; } ``` 其,`encodeUrl.vbs`是一个VBScript文件,用于实现ANSI编码。以下是`encodeUrl.vbs`的代码: ```vbscript Dim objArgs Set objArgs = WScript.Arguments Dim fso, file, url, encodedUrl Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.OpenTextFile(objArgs(0), 1) url = file.ReadAll file.Close encodedUrl = "" For i = 1 To Len(url) If Asc(Mid(url, i, 1)) < 128 Then encodedUrl = encodedUrl & Chr(Asc(Mid(url, i, 1))) Else encodedUrl = encodedUrl & "%" & Hex(Asc(Mid(url, i, 1))) End If Next WScript.StdOut.Write encodedUrl ``` 使用以上代码,可以实现按照ANSI编码规则进行URL编码。但需要注意的是,这种方法并不是标准的URL编码方式,可能会导致一些兼容性问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值