URL 인코더/디코더
URL을 안전하게 인코딩하거나 디코딩하세요
입력
빠른 입력
결과
유용한 정보
URL 인코딩: 특수문자를 %XX 형태로 변환
컴포넌트 인코딩: URL의 일부분만 안전하게 인코딩
Base64: 바이너리 데이터를 텍스트로 변환
HTML 엔티티: HTML 특수문자를 안전하게 표시
변환 히스토리
| 시간 | 타입 | 원본 | 결과 | 액션 |
|---|
아직 변환 히스토리가 없습니다.
URL 인코딩/디코딩 도구는 주소나 텍스트를 네 가지 방식으로 바꿔 줍니다. 한글이나 공백이 섞인 주소를 안전한 형태로 만들고, 반대로 %EC%95%88 처럼 알아보기 힘든 문자열을 원래 글자로 되돌립니다. 링크가 중간에서 잘리거나 검색어가 깨질 때, API 응답에 담긴 값을 확인할 때 씁니다.
URL인코더 사용 방법
- 입력 칸에 바꿀 텍스트나 주소를 넣습니다.
- 변환 방식을 하나 고릅니다. 주소 전체를 다룰 때는 URL 인코딩(표준), 주소에 끼워 넣을 값 하나만 다룰 때는 URL 컴포넌트 인코딩을 씁니다.
- 인코딩 또는 디코딩 버튼을 누르면 결과 칸에 나타납니다.
- 되돌릴 때 값이 지저분하면 디코딩 옵션 두 가지를 켜 봅니다. JSON 에서 흔한 역슬래시 슬래시(\/) 를 지우거나, 두 번 인코딩된 HTML 엔티티를 정상 표현으로 바꿔 줍니다.
- 결과 복사로 가져가거나, 입력/결과 교체 버튼으로 결과를 다시 입력에 넣어 연달아 변환합니다. 아래 변환 히스토리에서 직전 작업들을 다시 확인할 수 있습니다.
지원 형식과 입력 조건
- URL 인코딩(표준)
- 주소 전체용. : / ? # & = 같은 구분자는 그대로 두고 나머지만 바꿉니다
- URL 컴포넌트 인코딩
- 값 하나용. & 나 = 까지 전부 바꿔서 다른 파라미터를 침범하지 않게 합니다
- Base64 인코딩
- 임의의 텍스트를 영문·숫자·기호 몇 개로만 표현합니다. 암호화가 아닙니다
- HTML 엔티티 인코딩
- < > & 같은 문자를 < > & 로 바꿔 화면에 글자 그대로 보이게 합니다
- 디코딩 보조 옵션
- JSON 이스케이프 슬래시 제거, 이중 인코딩된 HTML 엔티티 복원
- 처리 위치
- 브라우저 안에서만 변환하며 입력한 값은 서버로 전송되지 않습니다
- 히스토리
- 변환 내역을 화면에 남깁니다(입력·결과는 100자까지 미리보기). 히스토리 삭제 버튼으로 비웁니다
표준과 컴포넌트, 어느 쪽을 골라야 하나
- 주소 하나를 통째로 바꿀 때는 표준을 씁니다. https://example.com/검색?q=값 처럼 이미 완성된 주소라면, 구분자(: / ? # & =)까지 바꿔 버리면 주소 구조가 깨집니다.
- 반대로 파라미터에 넣을 값 하나만 다룰 때는 컴포넌트를 씁니다. 검색어에 & 나 = 가 들어 있으면 표준 방식으로는 그대로 남아, 서버가 그 지점부터 다른 파라미터로 읽어 버립니다.
- 검색어·이름·주소값처럼 "주소 안에 끼워 넣는 값"은 거의 항상 컴포넌트가 맞습니다.
Base64 는 암호가 아닙니다
- Base64 는 아무나 되돌릴 수 있는 표현 방식입니다. 이메일이나 데이터 URL 처럼 텍스트만 다룰 수 있는 자리에 이진 값을 실어 보내려고 쓰는 것이지, 내용을 숨기는 수단이 아닙니다.
- 비밀번호나 개인정보를 Base64 로 바꿔 저장하거나 전송하는 것은 아무 보호도 되지 않습니다.
- 형식이 어긋난 문자열을 디코딩하려 하면 유효하지 않다는 오류가 납니다. 앞뒤가 잘렸거나 줄바꿈이 섞였는지 확인해 보세요.
%EC%95%88 같은 값이 한글로 안 돌아올 때
- 두 번 인코딩된 경우가 많습니다. %25EC 처럼 % 가 %25 로 한 번 더 바뀌어 있으면, 디코딩을 두 번 해야 원래 글자가 나옵니다. 결과를 입력/결과 교체 버튼으로 되돌려 한 번 더 디코딩해 보세요.
- UTF-8 이 아닌 옛 인코딩(EUC-KR)으로 만들어진 값은 이 도구로 되돌릴 수 없습니다. 그런 값은 %BE%C8 처럼 UTF-8 한글보다 짧은 형태를 띱니다.
자주 묻는 질문
한글 주소를 그냥 써도 되는데 왜 인코딩하나요?
요즘 브라우저는 한글 주소를 알아서 처리해 주지만, 그 주소를 다른 프로그램이나 메신저·이메일로 옮기는 순간 깨지는 경우가 많습니다. 링크를 공유하거나 코드에 넣을 때는 인코딩된 형태가 안전합니다.
입력한 내용이 서버에 저장되나요?
아닙니다. 변환은 전부 브라우저 안에서 이루어집니다. 화면 아래 변환 히스토리도 그 화면에만 남고, 새로 고치면 사라집니다.
공백이 + 로 바뀌는 경우와 %20 인 경우가 다르던데요?
이 도구는 %20 방식으로 바꿉니다. + 는 HTML 폼 전송(application/x-www-form-urlencoded)에서 쓰는 옛 규칙이라 주소의 경로 부분에서는 통하지 않습니다. 받는 쪽이 폼 형식을 기대한다면 %20 을 + 로 바꿔 주면 됩니다.
HTML 엔티티 인코딩은 언제 쓰나요?
이용자가 쓴 글을 화면에 그대로 보여 줄 때 씁니다. < 로 시작하는 문자열을 손대지 않고 출력하면 브라우저가 태그로 읽어 버리는데, 엔티티로 바꿔 두면 글자 그대로 보입니다. 다만 실제 서비스에서는 출력 시점에 서버나 템플릿이 처리하도록 하는 것이 정석입니다.