Devin.KR

URL ENCODER · PERCENT ENCODING

URL 인코더/디코더

주소창의 %ED%95%9C 은 무슨 글자?

'한글 검색' 을 넣고 Encode 를 누르면 %ED%95%9C%EA%B8%80%20%EA%B2%80%EC%83%89 으로, 반대로 Decode 를 누르면 원래 글자로 돌아옵니다. 쿼리 파라미터 값을 만들거나 로그에 찍힌 인코딩된 주소를 읽을 때 씁니다.

  • UTF-8 기준
  • 인코딩·디코딩
  • 브라우저에서만 처리
  • 무료 · 가입 없음
바로 사용하기 ↓

The URL Decoder/Encoder is licensed under a Creative Commons Attribution-ShareAlike 2.0 License.

MADE FOR YOUR WORK

이럴 때 쓰세요

쿼리 파라미터 값 만들기

검색어나 리다이렉트 주소처럼 & = ? 가 들어갈 수 있는 값을 URL 에 안전하게 붙일 형태로 바꿉니다.

로그 속 주소 읽기

접근 로그나 에러 메시지에 %EC%84%9C 처럼 찍힌 한글 경로·검색어를 사람이 읽는 글자로 되돌립니다.

API 호출 디버깅

GET 요청의 파라미터가 서버에서 깨질 때 인코딩이 한 번 됐는지, 두 번 됐는지 직접 풀어 봅니다.

공유 링크 정리

메신저로 받은 긴 인코딩 주소를 디코딩해 실제로 어떤 페이지·검색어로 가는 링크인지 확인합니다.

STEP BY STEP

URL 인코더/디코더 사용 방법

이렇게 쓰세요

  1. 문자열 붙여 넣기

    URL 문자열 칸에 인코딩할 값이나 디코딩할 %XX 문자열을 넣습니다.

  2. Encode 또는 Decode

    Encode 는 글자를 %XX 로, Decode 는 %XX 를 글자로 바꿉니다. 결과는 같은 칸에 덮어써집니다.

  3. 결과 확인

    Decode 결과에 또 %XX 가 보이면 이중 인코딩된 값입니다. 한 번 더 Decode 하면 원문이 나옵니다.

  4. 필요한 곳에 복사

    칸의 내용을 선택해 복사합니다. 쿼리 값 하나 단위로 인코딩했는지 다시 확인하세요.

UNDERSTAND THE BASICS

퍼센트 인코딩(URL 인코딩)의 규칙

URL 에는 영문자, 숫자와 몇몇 기호만 그대로 쓸 수 있습니다. 나머지 글자는 UTF-8 바이트로 바꾼 뒤 각 바이트를 % 와 16진수 두 자리로 적습니다. 한글 '한' 은 UTF-8 로 3바이트라 %ED%95%9C 세 덩어리가 되고, 공백은 %20 이 됩니다.

/ ? & = # 같은 글자는 URL 의 구조를 나누는 구분자입니다. 값 안에 이 글자가 있으면 구분자로 오해받으므로 반드시 인코딩해야 합니다. 이 도구가 쓰는 encodeURIComponent 규칙은 이런 구분자까지 모두 인코딩하므로, 주소 전체가 아니라 '파라미터 값 하나'에 쓰는 것이 맞습니다.

예전 한국어 사이트는 EUC-KR 로 인코딩해 '한글' 을 %C7%D1%B1%DB 처럼 2바이트씩 적기도 했습니다. 이 도구는 UTF-8 만 다루므로 EUC-KR 로 인코딩된 문자열은 디코딩되지 않습니다. 또 HTML 폼 전송 방식은 공백을 + 로 보내므로, 이 도구는 Decode 할 때 + 를 공백으로 바꿉니다.

Encode 결과 치트시트
원래 글자인코딩 결과비고
공백%20폼 전송에서는 + 로 보내기도 함
&%26파라미터 구분자
=%3D키와 값 구분자
?%3F쿼리 시작
/%2F경로 구분자
#%23프래그먼트 시작
+%2B그대로 두면 공백으로 읽힐 수 있음
%%25이미 인코딩된 값을 다시 넣으면 %25 가 생김
' 와 "%27, %22이 도구가 추가로 인코딩
한%ED%95%9CUTF-8 3바이트
- _ . ! ~ * ( )그대로인코딩하지 않는 기호

URL 인코더/디코더 사용 안내

URL에 그대로 넣을 수 없는 한글·공백·특수문자를 percent-encoding(%XX)으로 바꾸고 되돌립니다. 브라우저에서만 처리하며 입력값을 서버로 보내지 않습니다.

문자열을 입력하고 URL 인코딩 또는 디코딩을 선택하세요. 이미 인코딩된 문자열을 다시 변환하면 이중 인코딩될 수 있으니 결과를 확인하세요.

QUICK EXAMPLE

URL 인코더/디코더 사용 예제

입력 · 시작

hello world

결과 · 확인

hello%20world

URL 전체와 쿼리 값은 인코딩할 범위가 다릅니다. 값 하나를 넣고 Encode 또는 Decode 버튼을 누르세요.

어떻게 구현했나

인코딩은 encodeURIComponent 를 씁니다. 이 함수는 URL 의 구분자(/ ? & = 등)까지 전부 바꾸므로, 쿼리 파라미터 값 하나를 감쌀 때 쓰는 함수입니다. 주소 전체를 넣으면 구조까지 인코딩되니 값 단위로 넣으세요.

여기에 작은따옴표와 큰따옴표를 %27·%22 로 한 번 더 바꿉니다. 표준은 이 둘을 그대로 두지만, 인코딩한 값을 HTML 속성이나 SQL 문자열에 넣는 자리에서 문제가 되는 경우가 많습니다.

디코딩할 때는 + 를 공백으로 먼저 바꿉니다. 옛 폼 전송 방식(application/x-www-form-urlencoded)이 공백을 + 로 보내기 때문인데, decodeURIComponent 만으로는 그 + 가 그대로 남습니다.

BEFORE YOU FINISH

자주 하는 실수

주소 전체를 인코딩한다

https://devin.kr/a?q=1 을 통째로 넣으면 https%3A%2F%2F… 가 되어 더는 주소로 동작하지 않습니다. 인코딩은 ? 뒤의 값 하나하나에만 하세요.

두 번 인코딩한다

이미 %XX 가 든 값을 다시 Encode 하면 % 가 %25 로 바뀌어 %25ED%2595… 가 됩니다. 서버에서 한글이 %ED… 로 보인다면 이중 인코딩을 의심하세요.

디코딩이 안 되는데 아무 반응이 없다

100% 처럼 뒤에 16진수가 없는 % 나 EUC-KR 로 인코딩된 값은 UTF-8 로 풀 수 없습니다. 이 도구는 오류 안내를 띄우고 입력을 그대로 보존합니다. 짝이 안 맞는 % 가 있는지 확인하세요.

자주 묻는 질문

한글 URL 인코딩은 어떻게 하나요?

URL 문자열 칸에 한글을 넣고 Encode 를 누르세요. UTF-8 기준으로 한 글자가 %XX 세 덩어리로 바뀝니다.

URL 에서 %20 과 + 의 차이는?

둘 다 공백을 뜻할 수 있습니다. %20 은 URL 어디서나 공백이고, + 는 폼 전송 형식의 쿼리에서만 공백으로 읽힙니다. 이 도구는 Encode 할 때 %20 을 쓰고 Decode 할 때 + 도 공백으로 바꿉니다.

%C7%D1%B1%DB 같은 값이 디코딩되지 않아요

EUC-KR 로 인코딩된 값이라 UTF-8 기준인 이 도구로는 풀리지 않습니다. 오래된 한국어 사이트의 주소에서 자주 보이며, EUC-KR 을 지원하는 도구로 디코딩해야 합니다.

encodeURI 와 encodeURIComponent 차이는?

encodeURI 는 주소 전체용이라 / ? & = # 같은 구분자를 남기고, encodeURIComponent 는 값 하나용이라 구분자까지 인코딩합니다. 이 도구는 encodeURIComponent 규칙을 따릅니다.

작은따옴표도 인코딩되나요?

됩니다. 표준 encodeURIComponent 는 ' 를 그대로 두지만, 이 도구는 HTML 속성이나 SQL 에 넣을 때 문제를 줄이려고 ' 는 %27, " 는 %22 로 바꿉니다.

입력한 데이터는 어디에서 처리하나요?

이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.

함께 쓰면 좋은 도구

전체 도구 바로가기

손으로 익히기

문서 · 데이터 변환

개발 실무

한국 개발 특화

API · 네트워크

이미지 · 색상