url 编码

asp.net URL 编码 :

        //
        // 摘要:
        //     对字符串进行 URL 解码并返回已解码的字符串。
        //
        // 参数:
        //   s:
        //     要解码的文本字符串。
        //
        // 返回结果:
        //     已解码的文本。
        public string UrlDecode(string s);
        //
        // 摘要:
        //     对在 URL 中接收的 HTML 字符串进行解码,并将结果输出发送到 System.IO.TextWriter 输出流。
        //
        // 参数:
        //   s:
        //     要解码的 HTML 字符串。
        //
        //   output:
        //     System.IO.TextWriter 输出流,包含已解码的字符串。
        public void UrlDecode(string s, TextWriter output);
        //
        // 摘要:
        //     对字符串进行 URL 编码,并返回已编码的字符串。
        //
        // 参数:
        //   s:
        //     要进行 URL 编码的文本。
        //
        // 返回结果:
        //     URL 编码的文本。
        public string UrlEncode(string s);
        //
        // 摘要:
        //     对字符串进行 URL 编码,并将结果输出发送到 System.IO.TextWriter 输出流。
        //
        // 参数:
        //   s:
        //     要编码的文本字符串。
        //
        //   output:
        //     System.IO.TextWriter 输出流,包含已编码的字符串。
        public void UrlEncode(string s, TextWriter output);
        //
        // 摘要:
        //     对 URL 字符串的路径部分进行 URL 编码,并返回已编码的字符串。
        //
        // 参数:
        //   s:
        //     要进行 URL 编码的文本。
        //
        // 返回结果:
        //     URL 已编码的文本。
        public string UrlPathEncode(string s);
        //
        // 摘要:
        //     将 URL 字符串标记解码为使用 64 进制数字的等效字节数组。
        //
        // 参数:
        //   input:
        //     要解码的 URL 字符串标记。
        //
        // 返回结果:
        //     包含解码后的 URL 字符串标记的字节数组。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     input 的值为 null。

 

 
关于javascript编码
javascript 中有三个关于编码的方法。作用和区别如下:

escape 方法


String 对象编码以便它们能在所有计算机上可读,

escape(charString)

必选项 charstring 参数是要编码的任意 String 对象或文字。

说明

escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %uxxxx 格式存储。

注意   escape 方法不能够用来对统一资源标示码 (URI) 进行编码。对其编码应使用 encodeURIencodeURIComponent 方法。


encodeURI 方法(要求是ie 5.5以上的版本。)

将文本字符串编码为一个有效的统一资源标识符 (URI)。

encodeURI(URIString)

必选的 URIString 参数代表一个已编码的 URI。

说明

encodeURI 方法返回一个编码的 URI。如果您将编码结果传递给 decodeURI,那么将返回初始的字符串。encodeURI 方法不会对下列字符进行编码:":"、"/"、";" 和 "?"。请使用 encodeURIComponent 方法对这些字符进行编码。


encodeURIComponent 方法

将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。

encodeURIComponent(encodedURIString)

必选的 encodedURIString 参数代表一个已编码的 URI 组件。

说明

encodeURIComponent 方法返回一个已编码的 URI。如果您将编码结果传递给 decodeURIComponent,那么将返回初始的字符串。因为 encodeURIComponent 方法对所有的字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。如果字符串中包含不止一个 URI 组件,请使用 encodeURI 方法进行编码


说明:后两个都是转换成utf-8的形式。

          如果请求链接中参数有特殊的字符就要注意了。 ":"、"/"、";" 和 "?",由于encodeURI方法不对这些字符进行编码,如果参数里面有这些字符的时候就不能够用 encodeURI方法了。这种情况就要用encodeURIComponenet
方法进行编码了。但是只限于一个指定的参数,不能够把整个uri给它去转换。因为它会吧 "/" 和 “?”等字符编码。下面是一段Ajax 实现论坛的用户名检测的代码其中就用到了encodeURIComponenet 方法。


先简化了下 Ajax.js, 让它能在不同的程序里指定不同的 url, param 和 div 的 id.


var req, Div;
var debug = 0;

function Ajax(DivName, url, parameters) {
if (window.XMLHttpRequest) req = new XMLHttpRequest();
else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP");
else return; // fall on our sword
req.onreadystatechange = processReqChange;
req.open("POST", url, true);
req.setRequestHeader('Connection', 'close');
req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
req.send(parameters);
Div = document.getElementById(DivName);
}

function processReqChange() {
// only if req shows "complete"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
// show content in div
Div.innerHTML = req.responseText;
} else {
if (debug) alert('status is not 200,but ' + req.status);
}
}
}
调用的代码为:
<input type="text" maxlength="12" name="username" onblur="CheckName(this.value)"> * 2 - 12 字符(1 - 6 汉字)
<script language="javascript" type="text/javascript" src="./js/Ajax.js"></script>
<script language="javascript" type="text/javascript">
function CheckName(aObj) {
try { Ajax('CheckName', 'CheckName.pl', 'mode=Ajax&name=' + encodeURIComponent(aObj)); }
catch (e) { return; }
}
</script>
<div id="CheckName"></div>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值