도구 리스트

URL 인코딩·디코딩

url-encode

• URL을 인코딩/디코딩해요. 구성요소·전체 URL 모드를 지원해요. • 한글·특수문자·공백까지 안전하게 변환하고 결과를 복사하세요.

쿼리 값·경로 조각용. 예약문자(/, ?, &, = 등)도 인코딩해요. (encodeURIComponent)

구성요소 모드는 예약문자를 모두 인코딩하고(쿼리 값에 적합), 전체 URL 모드는 : / ? # & = 등 예약문자를 보존해요(주소 전체에 적합). 공백은 기본 %20, 폼 옵션을 켜면 +로 바뀝니다.

URL 인코딩이 필요한 이유

URL에는 영문·숫자와 일부 기호만 쓸 수 있어요. 한글이나 공백, & ? = 같은 기호를 그대로 넣으면 주소가 잘리거나 다른 뜻으로 읽혀요. 그래서 이런 문자를 %와 16진수 조합으로 바꿔 적는 게 URL 인코딩이에요.

공백은 %20, &는 %26이 되고 한글은 UTF-8 기준으로 한 글자에 %XX 세 덩어리가 돼요. 검색어가 들어간 링크를 공유하거나, 쿼리스트링에 값을 넣거나, 메신저에서 링크가 깨질 때 확인하면 좋아요.

반대로 %기호가 가득한 주소를 원래 글자로 되돌려 읽을 수도 있어요. 어떤 검색어로 들어왔는지 로그를 볼 때 유용해요. 입력한 값은 브라우저에서만 변환되고 서버로 전송되지 않아요.

자주 묻는 질문

URL 인코딩에서 공백은 %20인가요 +인가요

주소나 경로에 들어가는 공백은 %20이 표준이에요. + 는 폼을 전송할 때 쓰는 방식이라 그 경우에만 공백을 뜻해요. 이 도구의 폼 옵션을 켜면 %20을 + 로 바꿔주고, 디코딩할 때도 + 를 공백으로 되돌려 읽어요. 둘을 헷갈리면 검색어 속 + 가 공백으로 잘못 읽히기도 해요.

encodeURI와 encodeURIComponent는 뭐가 다른가요

encodeURI는 주소 전체를 다룰 때 쓰는 함수라 : / ? # & = 같은 구분 기호를 그대로 남겨요. encodeURIComponent는 값 하나를 다룰 때 쓰는 함수라 이 기호까지 모두 바꿔요. 각각 전체 URL 모드와 구성요소 모드예요.

한글이 왜 %EA%B0%80 처럼 세 덩어리로 나오나요

인코딩은 글자가 아니라 바이트 단위로 이뤄져요. UTF-8에서 한글 한 글자는 3바이트라 %XX가 세 번 붙어요. 가는 %EA%B0%80이 되고 이모지는 4바이트라 네 덩어리가 돼요. 영문과 숫자는 1바이트라 그대로 남아요.

%2520 처럼 이상한 값이 나오는 이유는 뭔가요

이미 인코딩된 값을 한 번 더 인코딩한 경우예요. % 자체가 %25로 바뀌면서 %20이 %2520이 돼요. 링크를 조립하는 코드가 같은 값을 두 번 처리할 때 생기고, 디코딩을 두 번 돌리면 원래 값으로 돌아와요.

URL 디코딩할 때 오류가 나요

% 뒤에 16진수 두 자리가 오지 않으면 실패해요. 할인율 30% 처럼 % 기호가 그대로 섞인 문자열이 대표적이에요. 이럴 때는 % 자체를 %25로 고쳐 넣거나, 문제가 되는 부분만 빼고 변환하면 돼요. 인코딩된 값인지 헷갈릴 때는 먼저 인코딩해 견줘 보는 것도 방법이에요.

인코딩하지 않아도 되는 문자는 무엇인가요

영문 대소문자와 숫자, 그리고 - _ . ~ 를 비롯한 몇몇 기호는 안전한 문자로 보고 그대로 둬요. 나머지는 % 와 16진수로 바뀌고요. 전체 URL 모드에서는 여기에 더해 주소 구조를 이루는 구분 기호도 손대지 않아요.