생활코딩

Coding Everybody

encodeURI

토픽 생활코딩 > 클라이언트 > JavaScript > JavaScript 사전

요약(Summary)

URI를 전달 할 때 문제가 없도록 인코딩

문법(Syntax)

encodeURI(encodedURI)

인자(Parameters)

인자명 데이터형 필수/옵션 설명
encodedURI string 필수 인코딩할 문자열

반환값(Return)

string, 인코딩된 문자열

설명(Description)

웹을 통해서 데이터를 전송할 때 특정 문자들은 특수한 기능으로 사용된다.
예를들어, http://a.com?name=egoing&job=programmer 에서
&job=programmer 중 '&'는 하나의 파라미터가 끝나고 다음 파라미터가 온다는 의미이다.
그런데 다음과 같이 job의 값에 &가 포함된다면 시스템은 job의 값을 제대로 인식할수 없게 된다.
http://a.com?name=egoing&job=programmer&blogger
이런 문제를 회피하기 위해서 다음과 같이 치환해준다.
http://a.com?name=egoing&job=programmer%26blogger
그럼 시스템에서는 %26을 &로 해석하고 의도대로 해석할 수 있게 된다.
이러한 처리를 이스케이핑(escaping)라고 부른다.

  escape encodeURI encodeURIComponent
대상 다음을 제외한 모든 문자열
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
1234567890
@*-_+./
인터넷 주소에서 사용하는 특수문자는 변환하지 않는다.
: ; / = ? &
모든 문자를 변환
용도 encodeURIComponent 를 사용

인터넷 주소 전체를 인코딩할 때

주소를 파라미터로 사용할 때

예) 'http://opentutorials.org/?uri='+encodeURIComponent(url);
예제 alert(escape('http://opentutorials.org?title=생활코딩&코딩생활'))

http%3A//opentutorials.org%3Ftitle%3D%uC0DD%uD65C%uCF54%uB529%26%uCF54%uB529%uC0DD%uD65C

alert(encodeURI('http://opentutorials.org?title=생활코딩&코딩생활'))

http://opentutorials.org?title=%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9&%EC%BD%94%EB%94%A9%EC%83%9D%ED%99%9C

alert(encodeURIComponent('http://opentutorials.org?title=생활코딩&코딩생활'))

http%3A%2F%2Fopentutorials.org%3Ftitle%3D%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9%26%EC%BD%94%EB%94%A9%EC%83%9D%ED%99%9C

예제(Example)

var original = 'http://opentutorials.org/javascript_reference/?id=155&name=안녕하세요'
var before = encodeURI(original);
alert(before); // string, http://opentutorials.org/javascript_reference/?id=155&name=%EC%95%88%EB%85%95%ED%95%98%EC%84%B8%EC%9A%94
var after = decodeURI(before);
alert(after); // string, http://opentutorials.org/javascript_reference/?id=155&name=안녕하세요

참고

 

댓글

댓글 본문