%20 · %C3%A9 · encodeURIComponent
URL 인코더·디코더
URL 인코딩은 안전하지 않은 문자를 %와 16진수 두 자리로 바꿉니다. 공백은 %20이 되고 é는 %C3%A9가 됩니다. 인코딩, 디코딩, 분석 중 하나를 고른 뒤 텍스트를 입력하거나 붙여넣으세요.
- a b&c=d → a%20b%26c%3Dd
- é → %C3%A9
- € → %E2%82%AC
- 😀 → %F0%9F%98%80
모든 처리는 이 탭 안에서 이루어지며 업로드되는 것은 없습니다. ASCII가 아닌 텍스트는 이스케이프하기 전에 UTF-8로 변환됩니다.
Scanned by NortonTM Safe Web
한눈에 보기
- 가격
- 비용 없음
- 계정
- 필요 없음
- 표준
- RFC 3986 (URI), WHATWG URL Standard
- 모드
- 인코딩, 디코딩, 분석
- 문자 집합
- UTF-8
- 업로드
- 없음 — 텍스트는 브라우저 탭 안에 머뭅니다
자주 쓰는 문자의 퍼센트 인코딩
각 칸은 이 페이지의 인코더와 디코더가 만든 값입니다. ␣ 기호는 공백을 뜻합니다.
| 문자 | encodeURIComponent | encodeURI | 폼(공백은 +) |
|---|---|---|---|
| ␣ | %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 |
| 이스케이프 | decodeURIComponent | decodeURI | 폼 |
|---|---|---|---|
| %2F | / | %2F | / |
| %3F | ? | %3F | ? |
| %23 | # | %23 | # |
| %20 | ␣ | ␣ | ␣ |
| %2B | + | %2B | + |
| %41 | A | A | A |
URL을 인코딩하거나 디코딩하는 방법
모드 고르기
텍스트를 이스케이프하려면 인코딩을, 이스케이프된 텍스트를 읽으려면 디코딩을, 전체 URL을 프로토콜, 호스트, 경로, 쿼리, 프래그먼트로 나누려면 분석을 고르세요.
방식 고르기
쿼리 매개변수처럼 값 하나에는 컴포넌트 방식을, 완전한 주소에는 전체 URL 방식을 쓰세요. HTML 폼으로 보내는 데이터에는 폼 방식을 쓰세요.
붙여넣고 복사하기
텍스트를 입력하거나 붙여넣으세요. 결과는 입력하는 대로 갱신되며 복사 버튼이 있습니다. 잘못된 % 시퀀스는 위치와 함께 표시됩니다.
퍼센트 인코딩은 어떻게 동작하나요
퍼센트 인코딩(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 안의 비밀번호는 있다는 사실만 알리고 출력하지 않습니다.