HTML 엔티티 변환기

관련 도구

HTML 엔티티란?

HTML 엔티티는 HTML에서 특별한 의미를 가진 문자를 안전하게 표시하기 위한 코드입니다. 예를 들어, < 기호를 HTML에 그대로 쓰면 태그로 인식되므로 &lt;로 변환하여 사용합니다.

주요 HTML 엔티티

  • &amp; — & (앰퍼샌드)
  • &lt; — < (작다)
  • &gt; — > (크다)
  • &quot; — " (큰따옴표)
  • &#39; — ' (작은따옴표)

언제 변환해야 하나

  • 코드 예제 게시 — 블로그나 게시판에 HTML·XML 코드를 올리면 태그로 해석되어 사라집니다. 엔티티로 변환하면 코드가 글자 그대로 표시됩니다.
  • 사용자 입력 표시(보안) — 사용자가 입력한 문자열을 변환 없이 HTML에 넣으면 악성 스크립트가 실행될 수 있습니다(XSS). 특수 문자를 엔티티로 이스케이프하는 것이 기본 방어입니다.
  • 디코딩 — 반대로 크롤링·API 응답에 &amp; 같은 엔티티가 섞여 있을 때 원래 문자로 복원합니다.

이름 엔티티와 숫자 엔티티

엔티티는 &lt;처럼 이름으로 쓰는 방식과 &#60;(10진수)·&#x3C;(16진수)처럼 문자 코드 숫자로 쓰는 방식이 있습니다. 둘 다 같은 문자를 의미하지만, 이름이 정의되지 않은 문자(이모지 등)는 숫자 형식으로만 표현할 수 있습니다.

자주 묻는 질문

어떤 문자를 변환하나요?
& < > 큰따옴표 작은따옴표처럼 HTML에서 특별한 의미를 가진 문자를 엔티티(&lt; 등)로 변환하고, 반대로 복원합니다.
HTML 엔티티 변환만으로 XSS를 막을 수 있나요?
특수문자 이스케이프는 기본 방어이지만 만능은 아닙니다. 값이 들어가는 위치(HTML 본문·속성·스크립트·URL)에 맞는 처리가 추가로 필요합니다.
이름 엔티티와 숫자 엔티티 중 무엇을 쓰나요?
둘 다 같은 문자를 의미합니다. 이름이 정의되지 않은 문자(이모지 등)는 숫자 형식(&#x...)으로만 표현할 수 있습니다.
입력값이 서버로 전송되나요?
아니요. 브라우저 안에서 변환되며 외부로 전송되지 않습니다.