URL 인코더 / 디코더
신규텍스트를 퍼센트 인코딩하거나 디코딩하고 쿼리 스트링을 파싱 — 브라우저에서.
Special characters reference
| Character | Encoded (%XX) | Notes |
|---|---|---|
| space | %20 | Also encoded as + in HTML form query strings |
| & | %26 | Query param separator — encode in values |
| = | %3D | Key-value separator in query strings |
| ? | %3F | Marks the start of a query string |
| # | %23 | Fragment identifier |
| / | %2F | Path separator |
| : | %3A | Protocol / port separator |
| @ | %40 | Username delimiter in URLs |
| + | %2B | Literal plus sign (+ in query string = space) |
| % | %25 | Percent itself — encode to avoid ambiguity |
| € | %E2%82%AC | UTF-8 multi-byte (3 bytes) |
| © | %C2%A9 | UTF-8 multi-byte (2 bytes) |
Per-language code snippets
Copy-ready snippets for JavaScript, Python, C#, PowerShell, Java and Go.
// Encode a single query value (recommended)
const encoded = encodeURIComponent('hello world & co.');
// → 'hello%20world%20%26%20co.'
// Decode
const decoded = decodeURIComponent('hello%20world%20%26%20co.');
// → 'hello world & co.'
// Encode a full URL (leaves : / ? & # intact)
const safeUrl = encodeURI('https://example.com/search?q=hello world');
// → 'https://example.com/search?q=hello%20world' from urllib.parse import quote, unquote, urlencode
# Encode a single value (%20 for spaces)
encoded = quote('hello world & co.')
# → 'hello%20world%20%26%20co.'
# Decode
decoded = unquote('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Encode a query dict (uses + for spaces — form encoding)
qs = urlencode({'q': 'hello world', 'page': '2'})
# → 'q=hello+world&page=2'
# quote_plus encodes spaces as + (match HTML form encoding)
plus = quote_plus('hello world')
# → 'hello+world' // Encode a single value (spaces → %20)
string encoded = Uri.EscapeDataString("hello world & co.");
// → "hello%20world%20%26%20co."
// Decode
string decoded = Uri.UnescapeDataString("hello%20world%20%26%20co.");
// → "hello world & co."
// Older System.Web API (spaces → +, form encoding):
// HttpUtility.UrlEncode("hello world") → "hello+world" # .NET method — works in PS 5+ and PowerShell Core
$encoded = [Uri]::EscapeDataString('hello world & co.')
# → 'hello%20world%20%26%20co.'
$decoded = [Uri]::UnescapeDataString('hello%20world%20%26%20co.')
# → 'hello world & co.'
# Alternate via System.Web (Desktop PS only):
Add-Type -AssemblyName System.Web
$enc2 = [System.Web.HttpUtility]::UrlEncode('hello world')
# → 'hello+world' import java.net.URLEncoder;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
// Encode (URLEncoder uses + for spaces — form encoding)
String encoded = URLEncoder.encode("hello world & co.", StandardCharsets.UTF_8);
// → "hello+world+%26+co."
// Decode
String decoded = URLDecoder.decode("hello+world+%26+co.", StandardCharsets.UTF_8);
// → "hello world & co." import "net/url"
// QueryEscape: spaces become +
encoded := url.QueryEscape("hello world & co.")
// → "hello+world+%26+co."
decoded, err := url.QueryUnescape("hello+world+%26+co.")
// → "hello world & co.", nil
// PathEscape: spaces become %20
pathSafe := url.PathEscape("hello world & co.")
// → "hello%20world%20&%20co." Runs entirely in your browser. Nothing is uploaded.
무료 온라인 URL 인코더 및 디코더
이 URL 인코더 및 디코더는 텍스트를 퍼센트 인코딩 형식으로 변환하거나 되돌리는 작업을 브라우저에서 직접 수행합니다. 텍스트를 붙여넣고, 인코딩 또는 디코딩을 선택하고, 컴포넌트 또는 전체 URI 규칙을 선택하면 결과가 즉시 업데이트됩니다. 아무것도 업로드되지 않습니다. 모든 처리는 코드에서 사용하는 것과 동일한 내장 JavaScript 함수를 사용하여 브라우저 내에서 완전히 실행됩니다.
퍼센트 인코딩은 웹 개발에서 피할 수 없습니다. 공백, 앰퍼샌드, 등호, 비 ASCII 문자는 모두 URL에 안전하게 포함되기 전에 이스케이프 처리가 필요합니다. API 요청을 작성하거나, 추적 링크를 디버깅하거나, 서버 로그를 읽을 때 이 도구는 멀티바이트 UTF-8 문자, 잘못된 시퀀스, 공백의 + 대 %20 모호성을 포함한 모든 엣지 케이스를 처리합니다.
encodeURIComponent 대 encodeURI — 어떤 규칙을 사용해야 할까?
encodeURIComponent는 개별 쿼리 값, 경로 세그먼트 또는 URL에 삽입하는 문자열에 올바른 선택입니다. ?, &, =, /, #, : 등 거의 모든 특수 문자를 인코딩하여 값이 URL 구조를 깨지 않도록 합니다. 예: 'hello world & page=2'는 'hello%20world%20%26%20page%3D2'가 됩니다.
encodeURI는 전체 URL을 깨지 않고 인코딩하기 위해 설계되었습니다. 구조 문자(: / ? # &)는 그대로 두어 URL이 계속 작동하도록 하면서 공백과 비 ASCII 문자는 인코딩합니다. 확실하지 않을 때는 값으로 삽입하는 모든 것에 컴포넌트 규칙을 사용하세요——거의 모든 웹 프레임워크에서 안전한 기본값입니다.
공백: %20 대 + — 폼 인코딩의 차이
URL에서 공백을 인코딩하는 두 가지 유효한 방법이 있습니다. URL 경로(? 이전 부분)에서는 RFC 3986에 따라 %20이 필요합니다. HTML 폼 쿼리 문자열에서는 오래된 application/x-www-form-urlencoded 형식이 역사적인 간결성을 위해 공백을 +로 인코딩합니다——브라우저는 GET으로 폼을 제출할 때 여전히 이 방식을 사용합니다.
둘 다 '공백'을 의미하지만 각자의 컨텍스트에서만 유효합니다. URL 경로의 +는 리터럴 플러스 기호이고, 쿼리 문자열의 +는 공백입니다. 쿼리 값의 리터럴 플러스는 %2B로 인코딩해야 하며, 그렇지 않으면 잘못 해석됩니다. 디코드 모드의 + 를 공백으로 토글은 decodeURIComponent를 실행하기 전에 +를 공백으로 대체하여 폼 인코딩된 입력을 처리합니다.
CyberChef 및 다른 URL 인코딩 도구와의 비교
CyberChef(GCHQ 제작)는 강력하지만 '레시피' 파이프라인 개념으로 설계되어 여러 작업을 연결해야 합니다. 단순 URL 인코딩 또는 디코딩을 위해서도 작업을 검색하고 레시피에 드래그한 다음 입력을 처리해야 합니다. 복잡한 변환에는 뛰어나지만, 빠른 인코딩/디코딩에는 불필요하게 번거롭습니다.
urldecoder.org 같은 다른 온라인 도구들은 단순하지만 광고를 표시하고, 각 작업마다 전체 페이지 새로고침이 필요하며, 언어별 코드 스니펫을 제공하지 않습니다. 이 도구는 키를 누를 때마다 즉시 결과를 업데이트하고, 컴포넌트와 전체 URI 규칙을 모두 처리하며, 자주 사용하는 인코딩 문자 참조 표를 포함하고, JavaScript, Python, C#, PowerShell, Java, Go로 복사 가능한 코드를 표시합니다.
특수 문자 빠른 참조
웹 개발에서 가장 자주 인코딩되는 문자: 공백 → %20(또는 쿼리 문자열에서 +), & → %26, = → %3D, ? → %3F, # → %23, / → %2F, : → %3A, @ → %40, + → %2B, % → %25. 멀티바이트 UTF-8 문자는 여러 시퀀스로 확장됩니다: € → %E2%82%AC, é → %C3%A9.
절대로 인코딩되지 않는 문자는 비예약 문자 집합입니다: A–Z 및 a–z 문자, 0–9 숫자, 그리고 네 가지 기호 - _ . ~. 그 외의 모든 것——모든 비 ASCII 문자 포함——은 표준에 맞는 URL에서 퍼센트 인코딩이 필요합니다.
JavaScript, Python, C#, PowerShell, Java에서 URL 인코딩
모든 주요 언어에는 이를 위한 내장 함수가 있습니다. JavaScript / Node.js: encodeURIComponent(str)와 decodeURIComponent(str)——가져오기 불필요. Python: urllib.parse.quote(str)와 unquote(str); 전체 쿼리 문자열은 urlencode(dict). C#: System 네임스페이스의 Uri.EscapeDataString(str)와 Uri.UnescapeDataString(str). PowerShell: [Uri]::EscapeDataString(str)(PS 5+ 및 PowerShell Core 지원). Java: URLEncoder.encode(str, StandardCharsets.UTF_8).
언어별 스니펫 패널에는 JavaScript, Python, C#, PowerShell, Java, Go의 복사 가능한 코드가 포함되어 있어 프로젝트에 즉시 올바른 호출을 추가할 수 있습니다——각 언어의 표준 라이브러리에서 + 대 %20 공백 동작에 대한 설명과 함께 제공됩니다.
100% 비공개 — 오프라인에서도 작동
모든 인코딩 및 디코딩 작업은 브라우저 내장 함수만 사용합니다: encodeURIComponent, decodeURIComponent, encodeURI, decodeURI. 붙여넣은 URL의 도메인 이름을 포함하여 어떤 텍스트도 서버에 전송되거나 저장되거나 기록되지 않습니다. 페이지가 로드된 후 기기를 오프라인으로 전환해도 완벽하게 작동합니다. 북마크해 두고 URL을 인코딩, 디코딩, 또는 검사해야 할 때마다 사용하세요.
Frequently asked questions
URL 인코딩이란 무엇인가요?
URL 인코딩(퍼센트 인코딩이라고도 함)은 URL에서 안전하지 않은 문자를 % 기호와 두 자리 16진수로 변환합니다. 예를 들어 공백은 %20, 앰퍼샌드는 %26, 해시는 %23이 됩니다. 문자 집합에 관계없이 모든 브라우저, HTTP 헤더, 서버에서 URL이 유효하게 작동하도록 보장합니다.
URL 인코딩에서 %20은 무엇을 의미하나요?
%20은 공백 문자의 퍼센트 인코딩 표현입니다. 20은 ASCII 32(공백)의 16진수 값입니다. 따라서 URL 'hello%20world'는 'hello world'로 디코딩됩니다. HTML 폼 쿼리 문자열에서는 공백에 %20 대신 +를 사용하기도 합니다——쿼리 문자열에서는 같은 의미이지만 URL 경로에서는 다릅니다.
encodeURI와 encodeURIComponent의 차이는 무엇인가요?
encodeURIComponent는 개별 쿼리 값이나 경로 세그먼트에 사용합니다——: / ? # & =를 포함하여 거의 모든 것을 인코딩하여 값이 URL 구조를 깨지 않도록 합니다. encodeURI는 전체 URL에 사용합니다——: / ? & # 같은 구조 문자는 그대로 유지하여 URL이 작동하도록 합니다. 원칙적으로 링크에 삽입하는 개별 값에는 항상 encodeURIComponent를 사용하세요.
JavaScript에서 URL 인코딩은 어떻게 하나요?
개별 값에는 encodeURIComponent()를 사용하세요: encodeURIComponent('hello world & co.')는 'hello%20world%20%26%20co.'를 반환합니다. 역변환에는 decodeURIComponent()를 사용하세요. 전체 URL에는 encodeURI() / decodeURI()를 사용합니다——구조 문자를 건너뜁니다. 둘 다 모든 브라우저와 Node.js에 내장되어 있어 가져오기가 필요없습니다.
한글을 URL 인코딩하면 어떻게 되나요?
한글과 같은 비 ASCII 문자는 UTF-8을 통해 여러 %XX 시퀀스로 인코딩됩니다. 예를 들어 '한국어'는 각 글자가 3바이트이므로 URL 인코딩하면 %ED%95%9C%EA%B5%AD%EC%96%B4가 됩니다. encodeURIComponent()가 이 변환을 자동으로 처리하므로 원본 문자열을 그대로 전달하면 됩니다.
공백이 때로는 %20이고 때로는 +인 이유는 무엇인가요?
URL 경로(? 이전)에서는 RFC 3986에 따라 공백이 %20이어야 합니다. 쿼리 문자열에서는 HTML 폼이 사용하는 오래된 application/x-www-form-urlencoded 형식이 역사적 간결성을 위해 공백을 +로 인코딩합니다. 둘 다 '공백'을 의미하지만 각자의 컨텍스트에서만 유효합니다——쿼리 값의 리터럴 +는 %2B로 인코딩해야 하며, 그렇지 않으면 공백으로 오해됩니다.
온라인으로 인코딩/디코딩하는 것이 안전한가요?
네——이 도구는 100% 로컬입니다. 모든 작업은 내장 JavaScript 함수를 사용하여 브라우저에서 실행됩니다. 텍스트는 어떤 서버에도 전송되거나 저장되거나 기록되지 않습니다. 페이지 로드 후 오프라인 상태에서도 계속 작동합니다. API 키, 자격 증명 또는 토큰을 인코딩할 때 특히 중요합니다.
Related tools
모든 도구 보기Cron 표현식 빌더
Cron 스케줄을 평어로 설명하고 다음 실행 시간 미리보기.
HTML 미니파이어
주석 제거와 공백 축소로 HTML 압축.
CSS 미니파이어
주석 및 불필요한 공백 제거로 CSS 축소.
JSON 이스케이프 / 언이스케이프
원시 텍스트를 JSON 안전 문자열로 이스케이프하고 다시 언이스케이프.
HTTP 상태 코드
HTTP 상태 코드를 평어로 설명하는 검색 가능한 참조 자료.
정규식 치트시트
정규 표현식 토큰 및 플래그의 검색 가능한 참조 자료.