URL 인코더/디코더 + HTML 엔티티 변환기

URL을 인코딩하고, 퍼센트 이스케이프를 디코딩하며, HTML 엔티티를 이스케이프 처리합니다.

도구
작업
URL 범위
입력
출력
준비되었습니다. 텍스트를 붙여넣고 작업을 선택해 주세요.

URL 및 HTML 텍스트는 브라우저 내에서 변환됩니다. BroBroGo 서버로 아무것도 업로드되지 않습니다.

자주 묻는 질문

URL component와 Full URL 중 어떤 것을 선택해야 하나요?

쿼리 값, 경로 조각 또는 폼 값에는 Component(구성 요소)를 사용하세요. :, /, ?, &, =와 같은 문자를 읽을 수 있는 상태로 유지하려면 Full URL(전체 URL)을 사용하세요.

HTML 엔티티 이스케이프는 무엇을 변경하나요?

<, >, &, 따옴표 및 비 ASCII 텍스트와 같은 문자들을 HTML 텍스트나 속성에 안전하게 붙여넣을 수 있는 엔티티(entity)로 변환합니다.

URL 디코딩이 가끔 실패하는 이유는 무엇인가요?

퍼센트 이스케이프는 완전한 UTF-8 시퀀스여야 합니다. %E0%A4%A와 같이 손상된 시퀀스는 임의로 추측하지 않고는 디코딩할 수 없습니다.

URL 인코딩과 디코딩의 원리 및 필요성

웹 브라우저와 서버가 통신할 때 사용하는 URL(Uniform Resource Locator)은 사용할 수 있는 문자 집합이 제한되어 있습니다. URL 인코딩(또는 퍼센트 인코딩)은 URL에 포함할 수 없는 문자나 특수한 의미를 지닌 문자를 안전한 형식으로 변환하는 과정입니다.

이 변환 과정에서는 문자를 UTF-8 바이트 시퀀스로 변환한 뒤, 각 바이트를 백분율 기호(%)와 두 자리 16진수 값의 조합으로 표현합니다. 예를 들어 공백 문자는 %20으로 변환되며, hello world & city=서울와 같은 문자열은 인코딩을 거쳐 hello%20world%20%26%20city%3D%E1%B8%AC%EC%9A%B8로 변환됩니다. 반대로 디코딩은 이러한 퍼센트 이스케이프 문자열을 다시 원래의 사람이 읽을 수 있는 텍스트로 되돌리는 역변환 작업을 수행합니다.

URL 구성 요소와 전체 URL 인코딩의 차이

URL을 변환할 때는 변환하려는 대상의 범위에 따라 적절한 방식을 선택해야 합니다. 이 도구는 두 가지 범위 설정을 제공합니다.

  • Component (구성 요소): 쿼리 값, 경로 조각, 또는 폼 값에 입력할 텍스트를 인코딩할 때 사용합니다. 내부적으로 encodeURIComponentdecodeURIComponent 함수를 사용하여 작동합니다. 이 방식은 :, /, ?, &, = 등 URL 구조에서 제어 문자로 사용되는 문자들까지 모두 퍼센트 이스케이프로 변환하여 데이터의 유실이나 왜곡을 방지합니다.
  • Full URL (전체 URL): 전체 주소 형태를 유지하면서 안전한 URL로 변환할 때 사용합니다. 내부적으로 encodeURIdecodeURI 함수를 사용하며, :, /, ?, &, =와 같은 주소 구조용 예약 문자들을 인코딩하지 않고 그대로 읽을 수 있는 상태로 유지합니다.

HTML 엔티티 모드를 선택하면 URL 범위 제어 도구는 화면에서 자동으로 숨겨집니다.

HTML 엔티티 이스케이프의 역할

HTML 엔티티 이스케이프는 웹 페이지의 마크업 구조를 깨뜨리지 않고 텍스트를 안전하게 표시하기 위해 사용됩니다. HTML 문서 내에서 <, >, &, 따옴표(", ') 등은 태그를 정의하거나 속성을 지정하는 특수한 문자로 해석됩니다.

만약 일반 텍스트에 이러한 문자가 포함되어 있다면, 브라우저가 이를 코드로 오인하여 렌더링 오류를 일으킬 수 있습니다. HTML 엔티티 이스케이프는 이러한 문자들과 비 ASCII 텍스트를 &lt;, &gt;, &amp;와 같은 안전한 엔티티 코드로 변환하여 HTML 텍스트나 속성에 안전하게 붙여넣을 수 있도록 만듭니다. 이스케이프 해제(Unescape) 작업은 이 엔티티 코드들을 다시 원래의 문자로 복원합니다.

변환 규칙 및 예외 처리

텍스트 변환 작업을 수행할 때는 입력 데이터의 형식과 크기에 따른 규칙을 준수해야 합니다.

  • 입력 크기 제한: 이 도구는 최대 2,000,000자까지의 텍스트 입력을 지원합니다. 입력값이 이 한도를 초과하면 "입력값이 이 도구에서 지원하는 길이를 초과합니다. {max}자 이하로 유지해 주세요."라는 오류 메시지가 표시됩니다.
  • 올바른 UTF-8 시퀀스 요구: URL 디코딩을 수행할 때 퍼센트 이스케이프는 반드시 완전한 UTF-8 시퀀스 구조를 갖추어야 합니다. 만약 %E0%A4%A와 같이 중간에 끊기거나 손상된 시퀀스가 입력되면 디코딩을 완료할 수 없으며, "이 URL 텍스트에 손상된 퍼센트 이스케이프가 포함되어 있습니다."라는 에러가 발생합니다.
  • 기타 오류 제어: 변환 처리가 비정상적으로 지연되는 경우에는 "변환 시간이 너무 오래 걸립니다. 더 작은 입력값을 사용해 주세요."라는 메시지가 나타나며, 그 외의 원인으로 처리가 실패하면 "이 입력값을 변환할 수 없습니다."라는 문구가 출력됩니다.

브라우저 기반 로컬 처리 및 개인정보 보호

이 도구를 사용할 때 입력하는 모든 URL 및 HTML 텍스트는 외부 서버로 전송되지 않고 사용자의 웹 브라우저 내에서 로컬로 직접 변환됩니다. BroBroGo 서버로 아무것도 업로드되지 않으므로, 외부 유출 걱정 없이 텍스트 변환 작업을 수행할 수 있습니다.

자주 묻는 질문 (FAQ)

Q: URL component와 Full URL 중 어떤 것을 선택해야 하나요?
A: 쿼리 값, 경로 조각 또는 폼 값에는 Component(구성 요소)를 사용하세요. :, /, ?, &, =와 같은 문자를 읽을 수 있는 상태로 유지하려면 Full URL(전체 URL)을 사용하세요.

Q: HTML 엔티티 이스케이프는 무엇을 변경하나요?
A: <, >, &, 따옴표 및 비 ASCII 텍스트와 같은 문자들을 HTML 텍스트나 속성에 안전하게 붙여넣을 수 있는 엔티티(entity)로 변환합니다.

Q: URL 디코딩이 가끔 실패하는 이유는 무엇인가요?
A: 퍼센트 이스케이프는 완전한 UTF-8 시퀀스여야 합니다. %E0%A4%A와 같이 손상된 시퀀스는 임의로 추측하지 않고는 디코딩할 수 없습니다.

Q: 이 도구는 보안 취약점을 방어하는 새니타이제이션(Sanitization) 기능을 제공하나요?
A: 아닙니다. 이 도구가 수행하는 HTML 엔티티 이스케이프 및 URL 인코딩은 문자의 형식을 안전하게 변환하는 인코딩/이스케이프 작업일 뿐이며, 악성 스크립트나 유해 코드를 필터링하고 제거하는 보안 새니타이제이션(Sanitization)과는 구별됩니다.