HTML 엔티티 인코드 / 디코드
인코딩HTML 엔티티 인코드 및 디코드 — 이름, 10진, 16진.
이 페이지에서
HTML 엔티티 인코딩이란?#
HTML은 소수의 문자에 특별한 의미를 부여합니다. <와 >는 태그를 구분하고, &는 엔티티나 문자 참조를 시작하며, "와 '는 속성 값을 인용합니다. 이 문자 중 하나를 페이지에 리터럴 텍스트 로 표시하려면(코드 조각의 소스를 보여주거나, 검색 입력을 필드에 다시 채워 주거나, Tom & Jerry 문자열을 표시) 엔티티 라 부르는 대용품으로 바꿔야 합니다. 이 치환이 HTML 엔티티 인코딩입니다.
같은 이스케이프를 적는 세 가지 방법이 있으며, 이 도구는 옵션 선택기를 통해 세 가지 모두 제공합니다.
- 이름 —
&는&,<는<식입니다. 사람이 읽을 수 있고, 사람이 보통 손으로 적는 유일한 형태입니다. 이 모드에서는 구조적으로 위험한 다섯 문자만 이스케이프되며, 나머지는 손대지 않고 통과합니다. - 10진 — 모든 non-ASCII 또는 제어 문자가
&#N;이 되며, 여기서N은 10진 유니코드 코드포인트입니다(예:©는©). 모든 비표준 바이트를 보이게 하고 ASCII 안전하게 만들고 싶을 때 좋습니다. - 16진 — 같은 생각에 16진 코드포인트를 쓴 것입니다.
©는©가 됩니다. 간결하고 유니코드 표에서 보는 코드포인트 표기와 자연스럽게 정렬됩니다.
디코딩은 큐레이션된 HTML5 하위 집합의 이름 붙은 엔티티와 &#NN;(10진), &#xHH;(16진)을 인식합니다. 인식할 수 없는 이름 붙은 엔티티는 잘못된 문자를 조용히 내보내는 대신 있는 그대로 남겨둡니다.
사용 방법#
- 왼쪽 위의 토글에서 인코딩 또는 디코딩 을 고르세요.
- 옵션 아래에서 이름, 10진, 16진 중 하나를 고르세요.
- 왼쪽 입력 패널에 붙여넣으세요.
- 오른쪽 출력 패널에서 이스케이프(또는 해제)된 결과를 읽고 복사 를 누르세요.
- 예제 는 데모 문자열을 불러오고, 지우기 는 패널을 초기화합니다.
주요 기능#
- 하나의 선택기에서 세 가지 이스케이프 스타일. 다시 붙여넣지 않고 이름·10진·16진을 전환하여 출력 비교를 사소하게 만듭니다.
- 성혜 문자 정확. 반복은 UTF-16 코드 유닛이 아니라 유니코드 코드포인트 단위이므로,
🌍같은 이모지는 깨진 서로게이트 쌍이 아니라 하나의 문자(🌍)로 취급됩니다. - 큐레이션된 안전 디코더. 이름 엔티티 맵은 일반적인 HTML5 참조(저작권, 상표, 악센트 문자, 수학 기호, 따옴표와 대시)를 덮습니다. 알 수 없는 이름은 망가뜨리는 대신 손대지 않고 통과합니다.
- DOM 개입 없음. 인코딩과 디코딩은 순수 문자열 연산입니다. 숨겨진
<div>주입이 없어 로직이 완전히 테스트 가능하고, 도구 자신이 입력을 마크업으로 해석할 위험이 없습니다.
실전 예시#
마크업과 리터럴 기호를 섞은 조각을 보세요.
<a href="x">Tom & Jerry</a> © 2026
이름 모드에서는 위험한 다섯 문자만 이스케이프되고 ©는 그대로 둡니다(구조적으로 위험하지 않으므로).
<a href="x">Tom & Jerry</a> © 2026
10진 으로 바꾸면 ©도 코드포인트가 되고, 핵심 문자는 숫자 형태로 바뀝니다.
<a href="x">Tom & Jerry</a> © 2026
16진 모드에서 같은 문자들이 16진 코드포인트로 나타납니다.
<a href="x">Tom & Jerry</a> © 2026
디코딩은 이 모든 것을 되돌립니다. 디코딩 을 선택한 채 세 출력 중 하나를 다시 붙여넣으면 ©를 포함해 원래 조각이 돌아옵니다.
FAQ#
문자열을 HTML 안에 안전하게 넣으려면 어느 모드를 써야 하나요?#
위험한 다섯 문자에는 이름 이 거의 항상 올바른 기본값입니다. 읽기 쉽고 모든 브라우저가 잘 이해하며 출력을 diff 친화적으로 유지합니다. 모든 non-ASCII 문자를 ASCII 안전하게 만들어야 할 때(예: 높은 바이트를 거부하는 전송을 위한 콘텐츠 준비), 일반 이스케이프가 아니라 특별히 10진 이나 16진 을 쓰세요.
©는 디코딩했는데 &mytag; 같은 이상한 이름은 그대로 나옵니다. 왜요?#
디코더는 실제로 아는 엔티티(일반적인 이름의 큐레이션된 HTML5 하위 집합)만 해결합니다. &mytag;는 실제 HTML 엔티티가 아니라 도구는 추측하거나 버리는 대신 손대지 않고 둡니다. 진짜로 모든 DTD 정의 엔티티를 해결해야 한다면 문자열 변환기의 범위를 벗어난, 실제 HTML 파싱의 영역입니다.
HTML 이스케이프만으로 JavaScript 문자열이나 URL에서 사용자 입력을 안전하게 만들기에 충분한가요?#
아니요. 각 문맥마다 자기 규칙이 있습니다. HTML 이스케이프는 마크업 주입에 대한 보호이지만, '); alert(1); // 같은 문자열은 HTML에서는 무해하고 <script> 안에서는 위험합니다. 같은 입력은 링크에 들어가기 전에 URL 인코딩도 필요합니다. 한 번이 아니라 대상 문맥에 대해 이스케이프하세요.
왜 16진 출력이 소문자(©가 아니라 ©)인가요?#
소문자 16진이 관례적이고 정돈된 형태이며 모든 브라우저가 동일하게 파싱합니다. 스타일 가이드에 대문자가 필요하면, 10진 모드(©)가 문제를 아예 피하고, 아니면 출력을 자신의 대소문자 변환에 통과시키세요.