URL 인코딩·디코딩

한글이 포함된 주소와 쿼리 문자열을 퍼센트 인코딩하거나 원래대로 디코딩합니다.

쿼리 문자열 분석

? 뒤의 파라미터를 나눠 디코딩합니다(+ 는 공백으로 해석).

사용 방법

  1. 인코딩: 방식을 고르고 원문을 넣으면 바로 퍼센트 인코딩 결과가 나옵니다.
  2. 디코딩: %ED%95%9C 같은 값을 넣으면 원래 글자로 되돌립니다. 폼 전송 값이면 "+ 를 공백으로"를 켜세요.
  3. 잘못된 % 시퀀스가 있으면 몇 번째 글자인지 알려 주고, 오류 위치 선택으로 입력칸에서 바로 찾을 수 있습니다.
  4. 아래 쿼리 문자열 분석에 주소를 붙여 넣으면 파라미터를 표로 나눠 보여 줍니다.

방식별 결과 비교

원문encodeURIComponentencodeURI폼 형식
서울 맛집%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91%EC%84%9C%EC%9A%B8+%EB%A7%9B%EC%A7%91
a+b=c&da%2Bb%3Dc%26da+b=c&da%2Bb%3Dc%26d
100%100%25100%25100%25
https://example.com/검색?q=한글&page=1https%3A%2F%2Fexample.com%2F%EA%B2%80%EC%83%89%3Fq%3D%ED%95%9C%EA%B8%80%26page%3D1https://example.com/%EA%B2%80%EC%83%89?q=%ED%95%9C%EA%B8%80&page=1https%3A%2F%2Fexample.com%2F%EA%B2%80%EC%83%89%3Fq%3D%ED%95%9C%EA%B8%80%26page%3D1

인코딩하지 않는 문자

자주 묻는 질문

encodeURIComponent와 encodeURI는 언제 각각 쓰나요?

쿼리 값 하나나 경로 조각 하나를 넣을 때는 encodeURIComponent를 씁니다. & = ? / # 까지 모두 인코딩해 값 안의 특수문자가 주소 구조를 깨지 않게 합니다. 이미 완성된 주소 전체에서 한글·공백만 바꾸고 싶을 때는 encodeURI를 씁니다. 값에 encodeURI를 쓰면 & 나 = 가 그대로 남아 파라미터가 잘못 나뉠 수 있습니다.

공백은 %20인가요, +인가요?

주소의 경로나 encodeURIComponent 결과에서는 %20입니다. HTML 폼을 전송할 때 쓰는 application/x-www-form-urlencoded 형식에서만 공백을 + 로 씁니다. 그래서 쿼리 문자열을 해석할 때는 + 를 공백으로 읽어야 하고, 값에 들어 있는 진짜 + 는 %2B로 인코딩해야 합니다.

"URIError: URI malformed" 오류는 왜 나나요?

decodeURIComponent에 % 뒤 16진수 2자리가 아닌 값(예: 100%)이 있거나, %ED%95처럼 한글 한 글자의 바이트가 중간에 잘린 값을 넣으면 납니다. 이 도구는 문제가 된 % 의 위치와 이유를 알려 주고, 쿼리 표에서는 잘못된 항목만 표시하고 나머지는 계속 해석합니다.

한글 한 글자가 왜 %EC%84%9C처럼 세 덩어리가 되나요?

주소는 UTF-8 바이트를 %XX 형태로 적는데, 한글 음절은 UTF-8에서 3바이트이기 때문입니다. 이모지는 4바이트라 %F0%9F%98%80처럼 네 덩어리가 됩니다.

오래된 사이트 주소의 %BC%AD%BF%EF 같은 값은 디코딩이 안 돼요.

그 값은 UTF-8이 아니라 EUC-KR(완성형)로 인코딩된 한글입니다. 이 도구는 현재 웹 표준인 UTF-8만 해석하므로 "올바른 UTF-8이 아닙니다"라고 표시합니다.

이 도구가 도움이 되었다면 공유해 주세요

계산 근거

이 계산기가 쓰는 세율·요율·기준의 출처입니다. 숫자가 맞는지 직접 확인해 보세요.

계산 결과가 이상한가요? 알려 주세요.

계산 결과는 참고용이며 법적 효력이 없습니다.

다른 도구