본문으로 건너뛰기

%20 · %C3%A9 · encodeURIComponent

URL 인코더·디코더

URL 인코딩은 안전하지 않은 문자를 %와 16진수 두 자리로 바꿉니다. 공백은 %20이 되고 é는 %C3%A9가 됩니다. 인코딩, 디코딩, 분석 중 하나를 고른 뒤 텍스트를 입력하거나 붙여넣으세요.

모든 처리는 이 탭 안에서 이루어지며 업로드되는 것은 없습니다. ASCII가 아닌 텍스트는 이스케이프하기 전에 UTF-8로 변환됩니다.

Scanned by NortonTM Safe Web

한눈에 보기

가격
비용 없음
계정
필요 없음
표준
RFC 3986 (URI), WHATWG URL Standard
모드
인코딩, 디코딩, 분석
문자 집합
UTF-8
업로드
없음 — 텍스트는 브라우저 탭 안에 머뭅니다

자주 쓰는 문자의 퍼센트 인코딩

각 칸은 이 페이지의 인코더와 디코더가 만든 값입니다. ␣ 기호는 공백을 뜻합니다.

문자 하나 인코딩
문자encodeURIComponentencodeURI폼(공백은 +)
␣%20%20+
!!!%21
"%22%22%22
#%23#%23
$%24$%24
%%25%25%25
&%26&%26
'''%27
(((%28
)))%29
****
+%2B+%2B
,%2C,%2C
/%2F/%2F
:%3A:%3A
;%3B;%3B
=%3D=%3D
?%3F?%3F
@%40@%40
[%5B%5B%5B
]%5D%5D%5D
~~~%7E
é%C3%A9%C3%A9%C3%A9
€%E2%82%AC%E2%82%AC%E2%82%AC
😀%F0%9F%98%80%F0%9F%98%80%F0%9F%98%80
이스케이프 하나 디코딩
이스케이프decodeURIComponentdecodeURI폼
%2F/%2F/
%3F?%3F?
%23#%23#
%20␣␣␣
%2B+%2B+
%41AAA

URL을 인코딩하거나 디코딩하는 방법

1

모드 고르기

텍스트를 이스케이프하려면 인코딩을, 이스케이프된 텍스트를 읽으려면 디코딩을, 전체 URL을 프로토콜, 호스트, 경로, 쿼리, 프래그먼트로 나누려면 분석을 고르세요.

2

방식 고르기

쿼리 매개변수처럼 값 하나에는 컴포넌트 방식을, 완전한 주소에는 전체 URL 방식을 쓰세요. HTML 폼으로 보내는 데이터에는 폼 방식을 쓰세요.

3

붙여넣고 복사하기

텍스트를 입력하거나 붙여넣으세요. 결과는 입력하는 대로 갱신되며 복사 버튼이 있습니다. 잘못된 % 시퀀스는 위치와 함께 표시됩니다.

퍼센트 인코딩은 어떻게 동작하나요

퍼센트 인코딩(RFC 3986)은 바이트를 %와 16진수 두 자리로 씁니다. 텍스트는 먼저 UTF-8로 변환되므로 é는 2바이트(%C3%A9), €는 3바이트(%E2%82%AC), 😀는 4바이트(%F0%9F%98%80)입니다. 알파벳, 숫자, - _ . ~ 는 인코딩할 필요가 없습니다. / ? # & = + : 같은 예약 문자는 URL에서 역할이 있으므로 인코딩 여부는 텍스트가 들어갈 위치에 따라 달라집니다.

encodeURIComponent는 쿼리 값처럼 URL의 한 부분에 쓰며 / ? # & = + : 를 인코딩합니다. encodeURI는 전체 URL에 쓰며 이 문자들을 그대로 두어 주소의 구조를 유지합니다. 폼 인코딩(application/x-www-form-urlencoded)은 공백을 %20 대신 +로 쓰고 ~ ! ' ( ) 도 인코딩합니다. 디코딩할 때는 뒤에 16진수 두 자리가 오지 않는 %를 거부하고 그 위치를 알려 줍니다.

URL 인코딩 질문

encodeURI와 encodeURIComponent는 무엇이 다른가요?

encodeURIComponent는 알파벳, 숫자, - _ . ! ~ * ' ( ) 를 제외한 모든 것을 인코딩하므로 / ? # & = + : 도 인코딩합니다. encodeURI는 이 문자들을 그대로 두어 전체 URL이 계속 동작합니다. a/b가 a%2Fb가 되는 것처럼 값에는 컴포넌트 방식을, 전체 주소에는 encodeURI를 쓰세요.

공백이 어떤 곳에서는 %20이고 어떤 곳에서는 +인 이유는 무엇인가요?

%20은 공백의 퍼센트 인코딩이며 URL 어디에서나 유효합니다. 공백을 +로 쓰는 것은 HTML 폼이 보내는 쿼리 문자열 형식인 폼 인코딩(application/x-www-form-urlencoded)에만 해당합니다. 실제 더하기 기호는 두 방식 모두 %2B입니다.

URL에서 유니코드 문자는 어떻게 인코딩하나요?

텍스트를 UTF-8로 변환한 뒤 각 바이트를 %XX로 씁니다. é는 %C3%A9, €는 %E2%82%AC, 😀는 %F0%9F%98%80이 됩니다. 이 페이지는 모든 인코딩 방식에서 이렇게 처리합니다.

URL에서 반드시 인코딩해야 하는 문자는 무엇인가요?

공백, 큰따옴표, < 와 >, 그리고 ASCII가 아닌 모든 문자는 항상 인코딩합니다. 알파벳, 숫자, - _ . ~ 는 인코딩하지 않습니다. ?나 & 같은 예약 문자는 URL 구조의 일부가 아니라 데이터일 때만 인코딩합니다.

디코딩할 때 잘못된 퍼센트 시퀀스라고 나오는 이유는 무엇인가요?

%뒤에는 16진수 두 자리가 와야 합니다. 100%는 %뒤에 아무것도 없어서 실패하고, ab%zz도 마찬가지입니다. 페이지는 잘못된 %의 위치를 알려 줍니다. %FF처럼 이스케이프된 바이트가 유효한 UTF-8을 이루지 않는 경우도 알려 줍니다.

이 페이지에서 URL을 구성 요소로 나눌 수 있나요?

예. 분석 모드는 브라우저의 URL 파서를 사용해 프로토콜, 사용자 이름, 호스트, 포트, 경로, 쿼리, 프래그먼트를 나열하고 각 쿼리 매개변수를 디코딩된 값과 함께 보여 줍니다. URL 안의 비밀번호는 있다는 사실만 알리고 출력하지 않습니다.