기능 소개
HTML 엔티티는 <를 나타내는 <, é를 나타내는 é처럼 문자를 대신하는 코드입니다. 이 도구는 웹 페이지에 안전하게 표시할 수 있도록 텍스트를 엔티티로 이스케이프하고, CMS나 이메일 템플릿에서 마크업을 복사해 온 경우처럼 엔티티를 다시 일반 텍스트로 디코딩합니다.
인코딩에는 2,000개가 넘는 HTML5 이름 참조 전체 목록을 사용하며, 디코딩은 이름 참조, 10진수(©) 참조, 16진수(©) 참조를 브라우저와 똑같이 해석합니다.
사용 방법
- 입력 상자에 텍스트나 HTML을 붙여넣거나 파일을 업로드하거나 예시를 클릭합니다.
- 인코딩 또는 디코딩을 선택합니다.
- 인코딩할 때는 어디까지 인코딩할지 고릅니다.
- & < > ” ‘만: 텍스트를 HTML이나 속성에 넣는 데 필요한 최소한입니다.
- 비ASCII 포함, 이름: é, ©, — 같은 문자도 이름 엔티티로 바꾸고, 이름이 없는 문자는 숫자 참조로 바꿉니다.
- 비ASCII 포함, 숫자: 위와 같지만 항상 숫자(
é)로 바꾸며, XML에서도 유효합니다. - 이름이 있는 모든 문자:
.이나/같은 구두점까지 인코딩합니다. 이런 문자를 지워 버리는 시스템에 쓸 때 유용합니다.
- 결과를 복사하거나 다운로드합니다. 입력으로 사용을 누르면 다시 디코딩해 왕복 결과를 확인할 수 있습니다.
예시
<p>Café & "crème brûlée"</p>
특수 문자만 인코딩하면 다음과 같고,
<p>Café & "crème brûlée"</p>
비ASCII 이름 엔티티까지 포함하면 다음과 같습니다.
<p>Café & "crème brûlée"</p>
주요 활용
브라우저가 렌더링하지 않도록 블로그에 코드 조각을 보여줄 때, 사용자 텍스트를 HTML 이메일에 넣을 때, &amp;처럼 이중으로 이스케이프된 텍스트를 고칠 때(한 번 디코딩), ASCII만 받는 시스템에 맞게 파일을 안전하게 만들 때 사용하세요.
자주 묻는 질문
› HTML에서 반드시 이스케이프해야 하는 문자는 무엇인가요?
텍스트에서는 &와 <를 이스케이프합니다. 속성 값 안에서는 값을 감싸는 따옴표 문자도 이스케이프해야 합니다. 이 도구의 기본값처럼 & < > " '를 어디서나 이스케이프하면 항상 안전합니다.
› 이름 엔티티와 숫자 엔티티 중 무엇을 써야 하나요?
둘 다 최신 브라우저에서 모두 동작합니다. é 같은 이름 엔티티는 읽기 쉽고, é 같은 숫자 참조는 XML이나 몇몇 이름만 아는 오래된 파서에서도 동작합니다. UTF-8 페이지라면 보통 비ASCII 문자를 인코딩할 필요가 전혀 없습니다.
› 세미콜론이 없는 엔티티도 디코딩되나요?
네. HTML 명세를 따르므로 세미콜론 없는 © 같은 레거시 형식도 브라우저와 똑같이 디코딩됩니다. &foo; 같은 알 수 없는 이름은 그대로 둡니다.
› 이스케이프만으로 XSS를 막을 수 있나요?
HTML 요소 안이나 따옴표로 감싼 속성에 들어가는 텍스트에는 이스케이프가 올바른 방어책입니다. 하지만 script 블록, style 블록, 이벤트 핸들러 속성, URL 안의 신뢰할 수 없는 입력까지 안전하게 만들지는 못하며, 이런 곳에는 맥락에 맞는 인코딩이 필요합니다.