URL 인코딩 사용 방법
- 변환 방향을 고릅니다. 깨진 주소를 읽고 싶으면 디코딩, 주소에 넣을 글을 바꾸려면 인코딩입니다.
- 입력 칸에 주소나 글을 붙여 넣으면 결과가 바로 나옵니다.
- 인코딩할 때는 검색어·파라미터 값 하나라면 "값 하나", 주소 전체라면 "주소 전체"를 고릅니다.
- 아래 URL 구조 분석에 주소를 넣으면 도메인, 경로, 파라미터를 표로 정리해 줍니다.
URL 인코딩(퍼센트 인코딩)이란?
인터넷 주소(URL)에는 영문, 숫자와 일부 기호만 쓸 수 있습니다. 한글이나 공백, & 같은 특수문자는 UTF-8 바이트로 바꾼 뒤 각 바이트를 %와 16진수 두 자리로 적습니다. 이것이 URL 인코딩(퍼센트 인코딩)입니다.
| 원래 글자 | 인코딩 결과 |
|---|---|
| 공백 | %20 (쿼리에서는 + 도 사용) |
| & | %26 |
| 한 | %ED%95%9C (UTF-8 3바이트) |
| 글 | %EA%B8%80 |
한글 한 글자가 %XX 세 개(9글자)로 늘어나기 때문에, 한글 주소를 복사해 붙여 넣으면 길고 알아보기 힘든 문자열이 됩니다.
encodeURIComponent와 encodeURI 차이
encodeURIComponent는 / ? & = # 같은 주소 구조 기호까지 모두 인코딩합니다. 검색어처럼 파라미터 값 하나를 넣을 때 써야 값 안의 &가 다음 파라미터로 오해받지 않습니다.
encodeURI는 주소 구조 기호는 그대로 두고 한글·공백만 인코딩합니다. 완성된 주소 전체를 안전하게 만들 때 씁니다.
- 값 하나:
a&b→a%26b - 주소 전체:
https://a.com/?q=한→https://a.com/?q=%ED%95%9C
한글 URL이 깨져 보일 때 해결 방법
브라우저 주소창에는 한글로 보이던 주소가 메신저나 문서에 붙여 넣으면 %로 가득한 주소로 바뀌는 경우가 많습니다. 주소 자체가 잘못된 것은 아니며 그대로 눌러도 열립니다. 내용을 읽고 싶을 때만 이 도구로 디코딩하면 됩니다.
디코딩 결과에 �처럼 깨진 글자가 나오면 주소가 UTF-8이 아닌 EUC-KR로 인코딩된 오래된 사이트 주소일 수 있습니다. 또한 일부 % 조각이 잘렸다면 이 도구는 풀 수 있는 부분만 풀고 나머지는 그대로 둔 뒤 알려 줍니다.
자주 묻는 질문
디코딩 결과에서 +가 공백으로 바뀌는 이유는 무엇인가요?
웹 폼으로 전송된 검색어는 공백을 +로 바꾸는 관례가 있습니다. 실제 + 기호를 유지하려면 "+ 기호를 공백으로" 옵션을 끄세요.
URL 인코딩을 두 번 하면 어떻게 되나요?
%가 다시 %25로 바뀌어 %25ED%2595처럼 됩니다. 이런 주소는 디코딩을 두 번 하면 원래대로 돌아옵니다.
URL 인코딩과 Base64는 무엇이 다른가요?
URL 인코딩은 주소에 쓸 수 없는 문자만 %XX로 바꾸고, Base64는 데이터 전체를 64개 문자로 다시 표현합니다. Base64 변환은 Base64 인코딩 도구를 이용하세요.
입력한 주소가 저장되거나 접속되나요?
아니요. 변환과 분석은 브라우저 안에서 문자열만 처리하며, 해당 주소에 접속하거나 서버로 보내지 않습니다.
공백은 %20과 + 중 무엇으로 인코딩하나요?
주소의 경로 부분에서는 %20을 씁니다. 검색어 같은 쿼리 값에서는 웹 폼 방식으로 +를 쓰기도 하지만, %20도 똑같이 공백으로 해석되므로 %20이 더 안전합니다.