자바스크립트에서 URL을 처리해서 리다리렉트 시커거나 하는 등의 작업을 할 때 한글이 섞여 있는 URL의 경우 이 한글문제 때문에 제대로 수행되지 않는 경우가 있다.
서버스크립트라면 URL인코딩 함수(PHP의 경우 urlencode())를 사용하면 되지만, 자바스크립트에서는 이런 역할(예를 들면 '가'를 '%EA%B0%80'으로 인코딩 해주는 역할)을 해 주는 함수가 없기 때문에 이를 직접 정의해서 사용하면 된다.
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'; })); }