http://www.albionresearch.com/misc/urlencode.htm <script language="javascript">
function URLEncode(plaintext)
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetci
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF"; var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+"; // x-www-urlencoded, rather than %20
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
if (charCode > 255) {
alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" +
"(URL encoding only supports 8-bit characters.)\n" +
"A space (+) will be substituted." );
encoded += "+";
} else {
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
} // for return encoded;
} function URLDecode(encoded)
{
// Replace + with ' '
// Replace %xx with equivalent character
var plaintext = "";
var i = 0;
while (i < (encoded.length-2)) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%" && encoded.charAt(i+1) != "%") {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
plaintext += ch;
i++;
}
} // while
if (i < encoded.length) {
plaintext += encoded.substr(i,encoded.length-i);
}
return unescape(plaintext);
} </script>
function URLEncode(plaintext)
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetci
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*'()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF"; var encoded = "";
for (var i = 0; i < plaintext.length; i++ ) {
var ch = plaintext.charAt(i);
if (ch == " ") {
encoded += "+"; // x-www-urlencoded, rather than %20
} else if (SAFECHARS.indexOf(ch) != -1) {
encoded += ch;
} else {
var charCode = ch.charCodeAt(0);
if (charCode > 255) {
alert( "Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" +
"(URL encoding only supports 8-bit characters.)\n" +
"A space (+) will be substituted." );
encoded += "+";
} else {
encoded += "%";
encoded += HEX.charAt((charCode >> 4) & 0xF);
encoded += HEX.charAt(charCode & 0xF);
}
}
} // for return encoded;
} function URLDecode(encoded)
{
// Replace + with ' '
// Replace %xx with equivalent character
var plaintext = "";
var i = 0;
while (i < (encoded.length-2)) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%" && encoded.charAt(i+1) != "%") {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
plaintext += ch;
i++;
}
} // while
if (i < encoded.length) {
plaintext += encoded.substr(i,encoded.length-i);
}
return unescape(plaintext);
} </script>
解决方案 »
- 动态创建的select获取selected值
- 有谁用过Niceforms v.10 ,如何解决控件不能用onblur各其他事件
- 表格某行点击变化的javascript怎么写(在线等)
- 大家帮我分析一下为什么下面这段代码改不了<title></title>之间的信息,无论你怎么改,在虚拟服务器上打开网页后,网页的标题栏还显示的是人
- 怎样在页面中随时调用js函数
- 请教一个在RealPlayer中播放mpg媒体文件的方法!
- 怎样画线?
- 请问在打开多个IE页面时如何让某一页置于顶端?
- 请问:如何用javascript获得浏览器文档的高度和浏览器窗口的高度?
- 我想用jsp做一个把日期当做标题的表格,引用什么jquery好呢还是怎么写代码?
- 求助高手啊!!!!!(关于字符串里的引号和双引号)
- 怎样用链接触发按钮提交网页?
function aa(){
str="kjn%3D2004%26zh%3D%B9%A4%D0%D0%D0%E3%C0%F6%B0%EC%";
alert(str);
str=unescape(str);
alert(str);
str=escape(str);
alert(str);
}