Toolify

URL 인코더 / 디코더 (퍼센트 인코딩, UTF-8 안전)

URL, 쿼리 매개변수, 폼 데이터에 텍스트를 안전하게 임베딩하는 데 사용. 공백, 특수 문자, 유니코드(CJK와 이모지 포함) 올바르게 처리.

인코딩 결과
 

작동 방식

URL 인코딩이란

URL은 작은 ASCII 문자 세트로 제한. 다른 것 — 공백, 강세, 한자, 이모지, 특수 기호 — 포함하려면 각 안전하지 않은 바이트를 16진수 바이트 값인 %XX로 교체. 공백은 %20이 됨, 슬래시는 %2F, 한자 漢은 %E6%BC%A2가 됨(UTF-8 바이트 퍼센트 인코딩).

본 계산기는 브라우저 내장 encodeURIComponent와 decodeURIComponent 사용. 비예약 문자(글자, 숫자, -._~)가 아닌 모든 것 인코딩, 쿼리 매개변수와 폼 데이터에 올바른 동작.

encodeURI vs encodeURIComponent

JavaScript에 두 인코더. encodeURI는 URL 구조 문자(/ ? & # = + 등) 그대로 둠 — 전체 URL에 사용. encodeURIComponent는 그 모두 이스케이프 — 쿼리 매개변수 내부 값에 사용.

본 도구는 encodeURIComponent 사용, URL에 임의 텍스트 임베딩의 더 안전한 선택. 보존하고 싶은 구조 있는 전체 URL이 있으면 필요한 부분만 인코딩.

흔한 함정

URL의 플러스 기호. 일부 서버가 '+'를 공백으로 처리(폼 인코딩의 레거시). encodeURIComponent는 '+' 그대로 두지만 서버가 공백으로 디코딩 가능. 안전을 위해 데이터로 보낼 때 '+'를 %2B로 교체.

이중 인코딩. 이미 인코딩된 문자열 인코딩은 또 다른 레이어 추가(% → %25, 그래서 '%20'은 '%2520' 됨). 인코딩 다시 실행 전 입력이 이미 인코딩되었는지 항상 확인.

길이 증가. UTF-8 다중 바이트 문자는 각 3-4 퍼센트 코드로 확장. 100자 한국어 문자열이 쉽게 900+ 자 URL 됨.

자주 묻는 질문

왜 '%20'이 공백으로 디코딩 안 됨?

그래야 함 — 그러나 URL에 '+'가 있으면 공백 표현 가능(레거시 폼 인코딩). 필요시 +를 공백으로 먼저 교체.

이모지 처리?

네. 이모지는 UTF-8 바이트 시퀀스로 인코딩(일반적으로 이모지당 4 바이트 / 4 퍼센트 코드).

URL 인코딩과 HTML 인코딩 차이?

URL 인코딩은 URL 컨텍스트에 % 표기 사용. HTML 인코딩은 HTML에 < > 등 사용. 다른 컨텍스트, 다른 규칙.

언제 인코딩하고 언제 안 함?

URL 쿼리 매개변수, 사용자 입력 포함 경로 세그먼트, 폼 데이터에 들어가는 모든 값 인코딩. 이미 빌드된 URL 인코딩 안 함 — 그것이 이중 인코딩.

왜 디코딩된 텍스트의 '%'가 오류?

유효한 헥스 아닌 다음의 베어 '%'는 유효하지 않은 퍼센트 인코딩. URL에 포함 전 '%'를 '%25'로 인코딩.

브라우저가 자동으로?

네 — URL이나 URLSearchParams API로 URL 빌드 시. 본 도구는 즉석 사용 위해 같은 로직 노출.

어떤 문자가 '안전'하고 인코딩 필요 없음?

글자(A-Z, a-z), 숫자(0-9), 그리고: - . _ ~ . 다른 모든 것은 encodeURIComponent로 퍼센트 인코딩.

데이터가 전송되나요?

전송되지 않습니다. 인코딩과 디코딩 모두 로컬 실행.

관련 도구

최종 업데이트: