링크에 왜 % 문자가 생길까요?
웹 주소는 정해진 구조 문자와 문자 표현 규칙을 사용합니다. 한글, 공백 또는 일부 특수문자가 검색어처럼 URL 안에 들어가면 브라우저와 서버가 같은 값으로 이해하도록 퍼센트 인코딩할 수 있습니다.
예를 들어 https://example.com/search?q=서울 맛집에서 검색어 값은 전달 과정에서 %EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91처럼 보일 수 있습니다.
%20, %2F, %3F는 무엇인가요?
% 뒤의 두 자리는 문자를 나타내는 바이트의 16진수 값입니다. 공백은 흔히 %20, 슬래시는 %2F, 물음표는 %3F로 표현됩니다. 한글은 UTF-8에서 여러 바이트를 사용하므로 한 글자에도 %xx 묶음이 여러 개 생깁니다.
| 원문 | 인코딩 |
|---|---|
| 공백 | %20 |
| / | %2F |
| ? | %3F |
| 서울 | %EC%84%9C%EC%9A%B8 |
Encode와 Decode의 차이
Encode는 사람이 입력한 문자열을 URL에서 안전하게 쓸 수 있는 표현으로 바꿉니다. Decode는 %xx가 섞인 문자열을 다시 읽기 쉬운 문자로 되돌려 확인합니다.
검색어 인코딩과 복원
서울 맛집%EC%84%9C%EC%9A%B8%20%EB%A7%9B%EC%A7%91Decode를 실행하면 오른쪽 문자열을 다시 서울 맛집으로 확인할 수 있습니다.
URL 전체를 무조건 인코딩하면 안 되는 이유
https://, ?, &, =, #는 주소의 위치와 파라미터를 구분합니다. 전체 URL을 단순 문자열처럼 인코딩하면 이런 구분자까지 바뀌어 클릭할 수 없는 주소가 될 수 있습니다.
일반적으로 검색어 같은 쿼리 값만 인코딩합니다. Only My Kit에서는 ‘쿼리 값 / 텍스트’와 ‘URL 구조 유지’를 구분해 선택할 수 있으므로 목적에 맞는 범위를 고르세요.
언제 Decode가 필요할까요?
- 메신저에서 복사한 링크가 % 문자로 길게 보일 때
- 검색 결과 URL에 실제 한글 검색어가 무엇인지 확인할 때
- UTM 또는 여러 쿼리 파라미터 값을 점검할 때
- API 요청 URL에서 전달된 값을 읽어야 할 때
- 공백이 %20이나 +로 표시된 이유를 확인할 때
Only My Kit에서 변환하는 방법
URL 인코더 또는 디코더에 문자열이나 URL을 입력하고, 처리 범위를 고른 다음 Encode 또는 Decode를 실행하세요. 결과를 확인한 뒤 복사하면 됩니다.
변환은 브라우저의 encodeURIComponent, decodeURIComponent와 URL 처리 기능으로 현재 기기에서 실행되며 입력값을 서버에 전송하지 않습니다.
- 문자열 또는 URL을 입력합니다.
- Encode 또는 Decode 방향을 선택합니다.
- 쿼리 값/텍스트 또는 URL 구조 유지 범위를 고릅니다.
- 결과를 확인하고 복사합니다.
URL 인코딩은 암호화가 아닙니다
퍼센트 인코딩은 전달 형식을 바꿀 뿐 누구나 Decode할 수 있습니다. 이메일 주소, 사용자 ID나 개인정보를 인코딩해도 내용이 숨겨지지 않습니다.
Base64도 표현 방식을 바꾸는 것이지 비밀을 보호하는 암호화가 아닙니다. 민감한 값은 URL에 넣지 말고 서비스의 적절한 인증과 암호화 방식을 사용하세요.
FAQ
- 공백은 항상 %20인가요?
- URL 구성 요소에서는 %20으로 보이는 경우가 많고, 폼 방식의 쿼리 문자열에서는 +로 표현되기도 합니다.
- URL Decode는 안전한 링크인지 확인해 주나요?
- 아니요. 문자를 복원할 뿐 링크의 신뢰도나 악성 여부를 판별하지 않습니다.