tigtools

HTML 엔티티 인코더 / 디코더

HTML 안에 넣을 텍스트를 안전하게 만들거나 & 및 é 같은 엔티티를 일반 문자로 되돌리세요.

브라우저에서 실행 가입 불필요

변환 방향

& < > " '는 항상 이스케이프됩니다. 그 외 문자는 비ASCII 문자 옵션을 선택한 경우에만 변환됩니다.

사용 방법

  1. 텍스트를 HTML에 안전하게 넣으려면 인코딩을, 엔티티를 문자로 되돌리려면 디코딩을 선택하세요.
  2. 인코딩할 때 악센트 문자와 기호를 그대로 둘지 엔티티로 바꿀지 선택하세요.
  3. 텍스트를 입력하거나 붙여 넣으면 결과가 즉시 업데이트됩니다.
  4. 결과를 복사하거나 “출력을 입력으로 사용”을 눌러 원래 텍스트로 디코딩되는지 확인하세요.

작동 방식

HTML에서 일부 문자는 특별한 의미를 가집니다. <는 태그를 시작하고, &는 엔티티를 시작하며, " 또는 '는 속성 값을 끝냅니다. 이 문자를 텍스트로 표시하려면 문자 참조로 작성해야 합니다. <는 &lt;, >는 &gt;, &는 &amp;, "는 &quot;, '는 &#39;로 씁니다. 아포스트로피에는 숫자 형식을 사용합니다. &apos;는 HTML 4에서 정의되지 않았기 때문입니다.

UTF-8로 저장하고 제공하는 페이지에서는 악센트가 있는 문자, 중국어 텍스트, 이모지를 비롯한 그 밖의 모든 문자를 그대로 쓸 수 있습니다. UTF-8은 최신 웹사이트의 기본 인코딩입니다. 문자를 엔티티로 변환해야 하는 경우는 일부 오래된 이메일 템플릿이나 데이터베이스처럼 UTF-8을 안전하게 처리하지 못하는 시스템을 사용할 때뿐입니다. 이때는 &eacute;처럼 이름이 있는 경우 명명된 엔티티를 사용하거나(그 밖의 문자는 숫자 참조로 변환), 모든 문자에 &#xE9;와 같은 숫자 참조를 사용할 수 있습니다.

디코딩에는 브라우저의 HTML 파서를 사용하지 않습니다. HTML 4.01의 명명된 엔티티 252개 전체와 &apos;, 그리고 자주 쓰이는 HTML5 이름 약 30개가 포함된 내장 테이블을 사용하며, 10진수 및 16진수 참조도 처리합니다. 숫자 참조에는 HTML5 규칙이 적용됩니다. &#0;, 서로게이트 값, U+10FFFF를 초과하는 값은 대체 문자 �로 변환됩니다. 128–159 값은 Windows-1252로 해석되므로 &#150;은 en dash가 됩니다. 브라우저와 마찬가지로 &amp 및 &copy 같은 일부 레거시 이름은 끝에 세미콜론이 없어도 허용됩니다. HTML5에는 2,000개가 넘는 이름이 정의되어 있습니다. 테이블에 없는 드문 이름은 그대로 유지하고 목록에 표시합니다.

HTML에 삽입하기 전에 텍스트를 이스케이프하는 것은 크로스 사이트 스크립팅(XSS)을 방어하는 중요한 방법이지만, 요소 내용과 따옴표로 감싼 속성 값에만 올바르게 적용됩니다. <script> 블록 안, style 속성 또는 URL에 넣는 텍스트에는 다른 이스케이프 방식이 필요합니다.

예시

웹페이지에 코드 표시하기

블로그 게시물에서 <div class="box">를 텍스트로 표시하려면 &lt;div class=&quot;box&quot;&gt;로 인코딩하세요. 브라우저가 요소를 만들지 않고 원래 태그를 표시합니다.

오래된 이메일 템플릿에 넣을 텍스트 준비

“사용 가능한 경우 명명된 엔티티 사용”을 선택하면 “Café – 5 €”가 Caf&eacute; &ndash; 5 &euro;로 변환됩니다. UTF-8이 아닌 문자 인코딩으로 이메일을 보내도 올바르게 표시됩니다.

스크랩하거나 내보낸 텍스트 정리

CMS 내보내기 데이터에 Fish &amp; Chips &#8211; &pound;9가 있습니다. 디코딩하면 Fish & Chips – £9가 되어 스프레드시트에 바로 붙여 넣을 수 있습니다.

자주 묻는 질문

HTML에서 어떤 문자를 이스케이프해야 하나요?

요소의 콘텐츠에서는 &와 <를 이스케이프해야 합니다. >도 이스케이프하는 것이 좋습니다. 속성값에서는 값을 둘러싼 따옴표 문자도 이스케이프해야 합니다. 어디서나 다섯 문자(& < > " ')를 모두 이스케이프하는 것이 이 도구가 사용하는 간단하고 안전한 규칙입니다.

이름 엔티티와 숫자 엔티티는 어떻게 다른가요?

&copy;와 같은 이름 엔티티는 읽기 쉽지만, 일부 문자에만 사용할 수 있습니다. &#169;(십진수)나 &#xA9;(16진수)와 같은 숫자 참조는 이모지를 포함한 모든 유니코드 문자에 사용할 수 있습니다.

&nbsp;를 디코딩하면 왜 공백처럼 보이나요?

&nbsp;는 줄 바꿈을 방지하는 공백(U+00A0)입니다. 일반 공백처럼 보이지만 줄 바꿈을 막고 HTML에서 연속된 공백을 하나로 처리하지 않습니다. 일반 공백과는 다른 문자이므로 텍스트를 비교하거나 검색할 때 유의해야 합니다.

é 같은 악센트 문자를 인코딩해야 하나요?

페이지에서 UTF-8(<meta charset="utf-8">)을 사용한다면 인코딩할 필요가 없습니다. 최신 페이지는 대부분 UTF-8을 사용합니다. 기본 설정을 그대로 두면 특수 문자 다섯 개만 이스케이프됩니다.

인코딩만으로 XSS를 방지할 수 있나요?

신뢰할 수 없는 텍스트를 HTML 요소의 콘텐츠나 따옴표로 둘러싼 속성값에 삽입할 때는 충분합니다. JavaScript 코드, CSS, 따옴표가 없는 속성, href="javascript:…"와 같은 URL에는 충분하지 않으며, 각각의 문맥에 맞는 처리가 필요합니다.

개인정보 보호

인코딩과 디코딩은 브라우저에서 일반 문자열 처리로 수행됩니다. 텍스트는 HTML로 렌더링되거나 업로드, 저장되지 않으며 분석 데이터에도 포함되지 않습니다.