php 또는 c언어 계열에서 urlencoding을 하면 느낌표같은 특수문자가 인코딩 되지만, 자바스크립트에서는 인코딩 되지 않고 그대로 나온다.(encodeURIComponent 함수)
그래서 자바스크립트에서 php방식으로 urlencoding을 하려면 아래의 함수를 이용하도록 하자.
자바스크립트가 왜 이렇게 되어있는지는 잘 모르겠지만...
php 함수 대타 용 javascript..!
function urlencode(str) {
str = (str + '').toString();
return encodeURIComponent(str)
.replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A')
.replace(/%20/g, '+');
}
function urldecode(str) {
return decodeURIComponent((str + '')
.replace(/%(?![\da-f]{2})/gi, function() {
return '%25';
})
.replace(/\+/g, '%20'));
}
function rawurlencode(str) {
str = (str + '').toString();
return encodeURIComponent(str)
.replace(/!/g, '%21')
.replace(/'/g, '%27')
.replace(/\(/g, '%28')
.replace(/\)/g, '%29')
.replace(/\*/g, '%2A');
}
function rawurldecode(str) {
return decodeURIComponent((str + '')
.replace(/%(?![\da-f]{2})/gi, function() {
return '%25';
}));
}
댓글 없음:
댓글 쓰기