URL 인코딩·디코딩
URL 인코딩·디코딩을 무료로 변환하세요. 전체 인코딩(encodeURI)과 컴포넌트 인코딩(encodeURIComponent) 차이, 한글 퍼센트 인코딩, 줄 단위 일괄처리까지 브라우저에서 바로 처리됩니다. 회원가입 없이, 서버 전송 없이 안전하게.
다음 계산
이어서 많이 찾는 계산
글자수 세기
텍스트공백 포함·제외 글자수를 실시간으로 셉니다.
Base64 인코딩·디코딩
텍스트텍스트·파일을 Base64(베이스64)로 변환하고 디코딩하는 무료 온라인 도구입니다. URL-safe 모드와 이미지 미리보기까지 브라우저에서 바로 처리됩니다.
공백 제거기
텍스트모든 공백 제거, 연속 공백 하나로, 줄 앞뒤 공백 제거, 빈 줄 제거까지 브라우저에서 바로 정리하세요.
대소문자 변환기
텍스트영문 텍스트를 대문자·소문자·Title Case·camelCase·PascalCase·snake_case·kebab-case 등 9가지 형식으로 한 번에 변환하세요.
이용 방법
전체 인코딩, 전체 디코딩, 컴포넌트 인코딩, 컴포넌트 디코딩 중 하나를 고르세요.
URL이나 쿼리 값을 입력하면 결과가 즉시 표시됩니다.
'결과 복사하기' 버튼으로 복사하세요. 여러 줄은 일괄처리 탭을 사용하세요.
인코딩이 필요한 예약문자는 아래 표에서 확인하고, EUC-KR 결과가 필요하면 변환·복사하세요.
URL 인코딩은 URL에 쓸 수 없는 문자(한글·공백·특수문자)를 %와 16진수로 바꾸는 방식입니다. 전체 URL에는 encodeURI를, 쿼리 파라미터 값처럼 URL의 한 부분에는 encodeURIComponent를 사용합니다.
| 문자 | encodeURI | encodeURIComponent |
|---|---|---|
| 한글·공백·이모지 | 인코딩 (%ED%95%9C…) | 인코딩 (%ED%95%9C…) |
| ; / ? : @ & = + $ , # | 그대로 둠 (URL 구조 문자) | 인코딩 (%3B %2F %3F …) |
| - _ . ~ | 그대로 둠 | 그대로 둠 |
| ! ' ( ) * | 그대로 둠 | 그대로 둠 |
| 언제 사용 | URL 전체를 변환할 때 | 쿼리 파라미터 값 등 URL의 일부를 변환할 때 |
| 입력 | encodeURIComponent 결과 | 비고 |
|---|---|---|
| 한 | %ED%95%9C | UTF-8 3바이트 |
| 글 | %EA%B8%80 | UTF-8 3바이트 |
| 공백 | %20 | 1바이트 |
| ? | %3F (컴포넌트) / ? (전체) | 모드에 따라 다름 |
| & | %26 (컴포넌트) / & (전체) | 모드에 따라 다름 |
심화 가이드
encodeURI와 encodeURIComponent, 뭐가 다른가요?
encodeURI는 URL "전체"를 위한 함수라서 : / ? # & = 같은 URL 구조 문자는 건드리지 않습니다. 반면 encodeURIComponent는 URL의 "한 조각(컴포넌트)"을 위한 함수라서 구조 문자까지 전부 % 인코딩합니다. 예를 들어 검색어 "날씨&미세먼지"를 쿼리 파라미터에 넣을 때는 encodeURIComponent로 %EB%82%A0%EC%94%A8%26%EB%AF%B8%EC%84%B8%EB%A8%BC%EC%A7%80 로 바꿔야 &가 파라미터 구분자로 오해받지 않습니다. 반대로 https://example.com/검색어 같은 전체 URL을 encodeURIComponent로 감싸면 ://와 /까지 망가져서 링크가 깨집니다. 헷갈리면 이렇게 기억하세요: 전체 URL → encodeURI, 파라미터 값 하나 → encodeURIComponent.
한글이 %ED%95%9C처럼 보이는 이유
한글은 URL에 직접 쓸 수 없어서 UTF-8 바이트로 나눈 뒤 각 바이트를 %XX 형태로 바꿉니다. "한"은 UTF-8에서 ED 95 9C 3바이트이므로 %ED%95%9C이 됩니다. 브라우저 주소창에서는 자동으로 한글로 보여주지만, 실제 전송되는 값은 인코딩된 형태입니다. 예전 escape() 함수는 한글을 %uD55C 같은 비표준 형태로 바꿔서 서버가 해석하지 못하니 사용하지 마세요.
이중 인코딩 주의: %가 %25로 바뀌었다면
이미 인코딩된 문자열을 한 번 더 인코딩하면 % 자체가 %25로 바뀌는 이중 인코딩이 발생합니다(예: %ED%95%9C → %25ED%2595%259C). 서버에서 한글이 깨져 보인다면 이중 인코딩을 의심해 보세요. 해결법은 간단합니다: 디코딩을 한 번 해서 원래 문자열로 되돌린 뒤, 필요한 횟수만큼만 다시 인코딩하세요. 이 도구의 디코딩 탭에서 %25ED%2595%259C를 붙여넣으면 단계를 확인할 수 있습니다.
Base64 인코딩과 헷갈리시나요?
URL 인코딩은 URL에 못 쓰는 문자를 % 형태로 바꾸는 것이고, Base64 인코딩·디코딩은 이진 데이터를 ASCII 문자로 바꾸는 것입니다. URL에 Base64 문자열을 넣을 때는 + / = 문자가 문제를 일으킬 수 있어서 URL-safe(Base64URL) 변환이 필요합니다. 두 도구를 함께 쓰면 토큰·이미지 데이터를 URL에 안전하게 실어 보낼 수 있습니다.
실무에서 바로 쓰는 인코딩 체크리스트
URL 인코딩이 필요한 순간은 생각보다 자주 찾아옵니다. 검색어처럼 한글을 쿼리 파라미터에 넣을 때는 값을 encodeURIComponent로 감싸야 하고, 전체 URL을 그대로 전달할 때는 encodeURI를 씁니다. 둘을 헷갈리면 &나 = 같은 예약 문자가 깨져 서버가 파라미터를 잘못 해석합니다. 파일 다운로드 링크에 한글 파일명이 들어갈 때도 인코딩이 필요하며, 이때는 서버의 헤더 처리까지 함께 고려해야 합니다. API를 호출할 때는 공백이나 특수문자가 포함된 값을 빠짐없이 인코딩했는지 확인하세요. 이미 인코딩된 값을 한 번 더 감싸면 %가 %25로 바뀌는 이중 인코딩이 되니, 디코딩 후 재인코딩하는 습관이 안전합니다. 인코딩과 헷갈리기 쉬운 Base64는 URL이 아니라 데이터를 문자화하는 용도이니 구분해서 쓰세요. 관련 개념은 Base64 인코딩·디코딩에서 확인할 수 있습니다.
자주 묻는 질문
URL 인코딩이란 무엇인가요?
encodeURI와 encodeURIComponent의 차이는 무엇인가요?
쿼리 파라미터 값을 인코딩할 때는 어떤 걸 써야 하나요?
한글이 %ED%95%9C처럼 표시되는 이유는 무엇인가요?
디코딩했는데 오류가 납니다. 왜 그런가요?
이중 인코딩이란 무엇인가요?
escape() 함수와는 무엇이 다른가요?
공백은 %20과 + 중 무엇을 써야 하나요?
한글 도메인은 어떻게 처리하나요?
인코딩된 링크를 메신저로 보내면 깨져요
POST로 보내면 인코딩이 필요 없나요?
관련 도구
JSON 포맷터·정리
텍스트지저분한 JSON을 예쁘게 정리하고 문법 오류를 바로 찾아주는 무료 온라인 도구입니다.
정규식 테스터
텍스트정규식 패턴을 입력 즉시 테스트하고 매치·그룹·치환 결과를 바로 확인하는 무료 온라인 도구입니다.
HEX 색상코드 변환
텍스트HEX 색상코드를 RGB·HSL로 변환하세요. 실시간 색상 미리보기와 3자리 HEX 지원, 형식별 복사 버튼까지 브라우저에서 바로 처리됩니다.
타임스탬프 변환기
텍스트유닉스 타임스탬프를 날짜로, 날짜를 타임스탬프로 변환하세요. 초·밀리초 자동 판별, 한국 표준시(KST) 기본 지원, 현재 시각 버튼까지.
내 IP 확인
텍스트현재 접속에 사용 중인 공인 IP 주소를 바로 확인하세요. 원클릭 복사, IPv4·IPv6 구분 표시.
자소서 글자수 계산기
텍스트자소서 기준(한글 2바이트)으로 글자수와 바이트를 셉니다.