주소창에 넣을 수 있는 글자는 정해져 있습니다. 한글이나 공백, 물음표와 앰퍼샌드처럼 주소 문법에서 다른 뜻을 가진 기호는 %와 16진수 두 자리로 바꿔 적어야 하는데 이것을 퍼센트 인코딩이라고 부릅니다. 이 페이지는 그 변환을 양방향으로 처리합니다. 위쪽 버튼으로 인코딩(텍스트를 URL 형태로)과 디코딩(URL 형태를 텍스트로)을 오갈 수 있고, 방향에 따라 입력·결과 이름표와 안내 문구도 함께 바뀝니다.
기준은 자바스크립트의 encodeURIComponent와 decodeURIComponent입니다. 이름 그대로 주소 전체가 아니라 그 안에 들어갈 한 조각, 그러니까 쿼리 값 하나나 경로 한 마디를 인코딩할 때 맞는 규칙이에요. 그래서 슬래시와 물음표, 앰퍼샌드까지 모두 인코딩합니다. 한글은 UTF-8 바이트로 바꾼 뒤 각 바이트를 퍼센트 표기로 옮기므로 한 글자가 %EA%B0%80처럼 세 덩어리로 늘어납니다. 공백은 플러스가 아니라 %20으로 처리됩니다.
변환은 타이핑하는 동안 즉시 이뤄지고, 디코딩할 때는 입력 앞뒤의 공백을 자동으로 잘라내고 처리합니다. 형식이 깨진 퍼센트 표기를 넣으면 빨간 글씨로 실패 안내가 나오니 잘려서 복사된 문자열인지 확인해 보면 됩니다. 계산은 브라우저 안에서만 이뤄지고 입력한 값은 전송되지 않습니다.
AencodeURIComponent 기준이라 그렇습니다. 플러스 표기는 HTML 폼 전송에서 쓰는 별도 규칙이고, 주소의 한 조각을 인코딩할 때는 %20이 맞습니다. 서버가 폼 방식을 기대한다면 결과에서 %20만 플러스로 바꿔 주세요.
AencodeURIComponent는 영문·숫자와 함께 하이픈, 밑줄, 점, 물결표, 느낌표, 별표, 작은따옴표, 괄호를 인코딩하지 않고 남깁니다. 주소에서 특별한 뜻이 없는 문자로 보기 때문이며 대부분의 서버가 그대로 받아들입니다.
A이 도구는 주소의 한 조각을 인코딩하는 기준을 쓰기 때문에 콜론과 슬래시도 인코딩합니다. 주소 전체를 다루려면 쿼리 값 부분만 잘라서 넣거나, 구성 요소별로 확인하려면 URL 파서 도구를 쓰는 편이 맞습니다.
A한글은 UTF-8에서 보통 3바이트라 각 바이트가 %XX 형태로 표기되면서 아홉 글자, 표기에 따라 세 덩어리로 늘어납니다. 정상 동작이며 디코딩하면 원래 글자로 돌아옵니다.
A퍼센트 뒤에 16진수 두 자리가 오지 않으면 실패로 처리됩니다. 문자열이 중간에 잘려 복사됐거나, 인코딩하지 않은 퍼센트 기호가 원문에 섞여 있는 경우가 흔합니다.
A퍼센트 기호 자체가 %25로 바뀌면서 이중 인코딩이 됩니다. 되돌리려면 디코딩을 두 번 해야 하니, 값이 이미 인코딩된 상태인지 먼저 확인하는 게 좋습니다.
A남지 않습니다. 브라우저 내장 함수로 그 자리에서 계산하며 서버로 보내는 요청이 없습니다. 검색어나 개인정보가 섞인 값도 페이지를 벗어나지 않습니다.
A입력칸 전체를 하나의 문자열로 보고 처리하므로 줄바꿈도 %0A로 인코딩됩니다. 줄마다 따로 결과가 필요하다면 한 줄씩 넣어 주세요.