인코더는 안전하지 않은 URL 문자(공백, &, ?, #, 비ASCII 등)를 각 문자가 %와 두 자리 16진수 코드가 되는 퍼센트 인코딩 형식으로 변환합니다. 디코더는 이 과정을 반대로 수행하여 원래 읽을 수 있는 텍스트를 복원합니다. 문자 수는 인코딩이 입력을 예기치 않게 중복하거나 잘라내지 않았는지 확인하는 데 도움이 됩니다.
컴포넌트 모드는 더 넓은 범위의 문자를 인코딩하며 개별 쿼리 파라미터 값을 인코딩하도록 설계되었습니다. URL 모드는 인코딩 대상이 더 엄격하며 전체 URL 경로 또는 전체 URL을 인코딩하도록 설계되었습니다. 쿼리 문자열을 만들 때는 컴포넌트 모드를, 전체 URL을 인코딩할 때는 URL 모드를 사용하세요.
배치 모드를 사용하면 여러 줄을 한 번에 인코딩하거나 디코딩할 수 있어 처리할 URL이나 파라미터 목록이 있을 때 유용합니다. 각 줄은 별도의 입력으로 처리되며 모든 결과가 함께 표시되어 쉽게 복사할 수 있습니다.
자주 묻는 질문
URL에 인코딩이 왜 필요한가요?
URL에는 특정 ASCII 문자만 사용할 수 있습니다. 공백, &, ?, #과 같은 문자와 비ASCII 문자는 인터넷에서 안전하게 전송되도록 인코딩(퍼센트 인코딩)해야 합니다.
퍼센트 인코딩이란 무엇인가요?
퍼센트 인코딩은 안전하지 않은 문자를 % 기호와 두 자리 16진수 코드로 바꿉니다. 예를 들어 공백은 %20이 되고 &는 %26이 됩니다.
URL 인코딩과 HTML 인코딩은 같은 것인가요?
아니요. URL 인코딩(퍼센트 인코딩)은 URL을 위한 것입니다. HTML 인코딩은 &를 나타내는 &이나 <를 나타내는 < 같은 엔티티를 사용합니다. 두 방식은 웹 개발에서 서로 다른 목적을 가집니다.
URL 모드와 컴포넌트 모드는 언제 사용해야 하나요?
단일 쿼리 파라미터 값(예: 검색어)을 인코딩할 때는 컴포넌트 모드를 사용하세요. 전체 URL 경로를 인코딩하거나 문자열 전체가 URL에 안전해야 할 때는 URL 모드를 사용하세요. 컴포넌트 모드는 값이 URL 구조 내부에 배치될 것이라고 가정하므로 더 많은 문자를 인코딩합니다.
'Hello World'를 인코딩하면 'Hello+World'가 아닌 'Hello%20World'가 나오는 이유는 무엇인가요?
URL 경로 세그먼트에서는 공백이 %20으로 인코딩됩니다. 공백에 대한 + 인코딩은 application/x-www-form-urlencoded 데이터(HTML 양식 제출)에서만 사용됩니다. 최신 모범 사례는 URL에서 일관되게 %20을 사용하는 것입니다. 계산기는 URL 인코딩에 %20을 사용합니다.
이모지나 악센트 문자 같은 비ASCII 문자도 인코딩할 수 있나요?
네. 비ASCII 문자는 먼저 UTF-8 바이트로 변환된 다음 각 바이트가 퍼센트 인코딩됩니다. 예를 들어 이모지 ☺(U+1F600)는 %F0%9F%98%80이 됩니다. é(U+00E9) 같은 악센트 문자는 %C3%A9가 됩니다. 이는 RFC 3986에 정의된 표준 방식입니다.
이것과 HTML 엔티티 인코딩의 차이점은 무엇인가요?
URL 인코딩(퍼센트 인코딩)은 URL을 위한 것으로 문자를 %XX 16진수 코드로 변환합니다. HTML 엔티티 인코딩은 &를 위한 &나 €를 위한 € 같은 명명된 또는 숫자 엔티티로 문자를 변환합니다. 두 방식은 완전히 다른 목적을 가지며 상호 교환할 수 없습니다.
특수 문자를 포함해도 인코딩 없이 작동하는 URL이 있는 이유는 무엇인가요?
최신 브라우저는 해당 URL로 이동하거나 양식을 제출할 때 URL을 자동으로 인코딩합니다. 그러나 코드, API 호출, 서버 측 리디렉션에서 프로그래밍 방식으로 URL을 구성할 때는 서버가 대신 처리하지 않으므로 수동으로 인코딩해야 합니다.
이중 인코딩의 위험이 있나요?
네. 이미 인코딩된 URL을 인코딩하면 %20이 %2520이 되며 이는 잘못된 것입니다. 다시 인코딩하기 전에 입력이 이미 인코딩되었는지 항상 확인하세요. 이 계산기는 디코딩된 출력을 표시하므로 결과가 올바른지 확인할 수 있습니다.
JavaScript에서 인코딩된 URL을 어떻게 처리하나요?
개별 값을 디코딩하려면 decodeURIComponent()를, 인코딩하려면 encodeURIComponent()를 사용하세요. 전체 URL에는 URL 구조 문자(/, ?, # 등)를 보존하는 decodeURI()와 encodeURI()를 사용하세요. escape()나 unescape()는 더 이상 사용되지 않으며 Unicode를 올바르게 처리하지 못하므로 절대 사용하지 마세요.