글
urlencode urldecode
//urlencode
function URLEncode(txt)
{
// The Javascript escape and unescape functions do not correspond
// with what browsers actually do...
var SAFECHARS = "0123456789" + // Numeric
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" + // Alphabetic
"abcdefghijklmnopqrstuvwxyz" +
"-_.!~*"()"; // RFC2396 Mark characters
var HEX = "0123456789ABCDEF";
var plaintext = txt;
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(txt)
{
// Replace + with " "
// Replace %xx with equivalent character
// Put [ERROR] in output if %xx is invalid.
var HEXCHARS = "0123456789ABCDEFabcdef";
var encoded = txt;
var plaintext = "";
var i = 0;
while (i < encoded.length) {
var ch = encoded.charAt(i);
if (ch == "+") {
plaintext += " ";
i++;
} else if (ch == "%") {
if (i < (encoded.length-2)
&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1
&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
plaintext += unescape( encoded.substr(i,3) );
i += 3;
} else {
alert( "Bad escape combination near ..." + encoded.substr(i) );
plaintext += "%[ERROR]";
i++;
}
} else {
plaintext += ch;
i++;
}
} // while
return plaintext;
};
'렛츠웹 + 게임 > My Tip' 카테고리의 다른 글
보드생성 관리 소스 (0) | 2009.01.05 |
---|---|
[Mysql] FEDERATED Tables (DB Link) (0) | 2009.01.05 |
위로 스크롤 되는 배너 (0) | 2009.01.05 |
innerhtml 을 이용해서 원하는 곳에 tr과 td를 삽입하는 방법 (0) | 2009.01.05 |
linux 파일 검색,치환등 (0) | 2009.01.05 |