한국어

HTML 엔티티 인코더 디코더 — < & 특수문자 변환

HTML 특수문자 엔티티 인코딩과 디코딩

브라우저에서 처리 · 서버로 전송되지 않음

소개

HTML에서 <, & 같은 문자는 특별한 뜻을 가지므로, 글자 그대로 보여 주려면 &lt;, &amp; 같은 엔티티로 적어야 합니다. 이 도구는 텍스트를 엔티티로 바꾸거나 엔티티를 원래 문자로 되돌립니다.

사용법

  1. 인코딩 또는 디코딩을 고릅니다.
  2. 인코딩이라면 범위를 고릅니다. 필수 5문자만 바꿀지, 한글과 이모지를 포함한 모든 비ASCII 문자를 숫자 참조로 바꿀지 선택하세요.
  3. 입력 칸에 내용을 붙여 넣으면 결과가 바로 나옵니다.
  4. 복사 버튼으로 가져가거나 결과를 입력으로 버튼으로 되돌려 확인하세요.

기준

  • 필수 5문자 모드: &는 &amp;, <는 &lt;, >는 &gt;, "는 &quot;, '는 &#39;로 바꿉니다.
  • 비ASCII 전체 모드: 위 5문자에 더해 코드 포인트 128 이상인 모든 문자를 10진 숫자 참조(&#54620;)로 바꿉니다. 이모지는 두 조각이 아니라 하나의 코드 포인트로 처리합니다.
  • 디코딩: 이름 참조, 10진 참조(&#65;), 16진 참조(&#x41;)를 한 번에 한 단계만 풀어요. &amp;lt;는 &lt;가 되며 <까지 가지 않습니다.
  • 이름 참조는 내장된 약 50개 표(amp, lt, gt, quot, apos, nbsp, copy, euro, hellip 등)만 지원합니다. 표에 없는 이름은 그대로 둡니다.
  • 0, 서로게이트 영역, 유니코드 범위를 넘는 숫자 참조는 HTML 표준처럼 대체 문자(U+FFFD)가 됩니다.

예시

입력 모드 결과
<a href="x"> 필수 5문자 &lt;a href=&quot;x&quot;&gt;
한글 비ASCII 전체 &#54620;&#44544;
👍 비ASCII 전체 &#128077;
&copy; &#x1F44D; 디코딩 © 👍

알아 두면 좋은 점

  • 속성값 안에 넣을 문자열은 따옴표도 반드시 바꿔야 하므로 필수 5문자 모드가 알맞습니다.
  • &nbsp;는 줄바꿈이 되지 않는 공백(U+00A0)이며, 디코딩하면 일반 공백과 비슷해 보이지만 다른 문자입니다.
  • 이중 인코딩을 막으려면 이미 엔티티가 들어 있는 문자열은 먼저 디코딩한 뒤 다시 인코딩하세요.

자주 묻는 질문

왜 HTML을 엔티티로 인코딩해야 하나요?

사용자가 입력한 문자열을 페이지에 그대로 넣으면 < 같은 문자가 태그로 해석됩니다. 필수 문자를 엔티티로 바꾸면 글자 그대로 보이게 되고, 스크립트가 끼어드는 문제를 줄일 수 있어요. 다만 서버 쪽 출력 이스케이프를 대신하는 것은 아닙니다.

필수 5문자란 무엇인가요?

앰퍼샌드, 작다 기호, 크다 기호, 큰따옴표, 작은따옴표 다섯 개입니다. 각각 &amp; &lt; &gt; &quot; &#39; 로 바꿉니다.

한글도 엔티티로 바꿔야 하나요?

문서가 UTF-8이면 바꿀 필요가 없습니다. 인코딩을 확신할 수 없는 환경에 넘기거나 ASCII만 허용되는 곳에 붙여 넣을 때만 비ASCII 전체 모드를 쓰세요.

디코딩이 되지 않는 엔티티가 있어요.

HTML 표준에는 2천 개가 넘는 이름 엔티티가 있는데 이 도구는 자주 쓰는 약 50개의 이름과 모든 숫자 참조만 지원합니다. 모르는 이름은 건드리지 않고 그대로 둡니다.

필요한 도구가 있나요?