onlinetools.dev

HTML 엔티티 인코딩 / 디코딩

HTML용 텍스트 이스케이프 또는 & 형식 엔티티 복원

로컬 실행
loading…
이 도구에 대해

HTML에 안전하게 넣을 수 있도록 텍스트를 이스케이프하거나(& 는 &amp;amp; 가 되고 < 는 &amp;lt; 가 됩니다), 엔티티투성이 텍스트를 읽을 수 있는 문자로 되돌립니다. 이름 있는 엔티티(&amp;rarr;), 십진(&amp;#169;), 십육진(&amp;#xA9;) 숫자 참조를 모두 다룹니다.

인코딩에는 두 수준이 있습니다. HTML 구조를 깨뜨리는 필수 문자 다섯 개(&amp; &lt; &gt; " ')만 이스케이프하는 방식으로, 올바름을 위해서는 이것으로 충분합니다. 또는 모든 비 ASCII 문자를 이스케이프하는 방식으로, 여러분과 페이지 사이의 도구 체인 어딘가에서 UTF-8이 망가질 때 유용합니다. 숫자 전용 모드는 이름 있는 엔티티를 건너뛰어, 미리 정의된 다섯 개만 보장하는 엄격한 XML 파서와의 호환성을 극대화합니다.

디코더는 일상적으로 더 많이 쓰이는 쪽입니다. 스크레이핑한 스니펫이나 &amp;#x27; 로 가득한 API 응답을 붙여넣으면 깨끗한 텍스트를 얻습니다. 알 수 없는 엔티티 이름은 추측되는 대신 그대로 통과합니다.

자주 묻는 질문

HTML에서 어떤 문자를 반드시 이스케이프해야 하나요?
텍스트 내용에서는 & 와 <. 속성 값에서는 속성을 감싸는 따옴표 문자(" 또는 ')도 추가로. > 를 이스케이프하는 것은 관례일 뿐 엄밀히 필수는 아닙니다. 그 밖의 모든 것은 UTF-8 문서에 그대로 쓸 수 있습니다.
엔티티 인코딩은 XSS 방어책인가요?
구조 문자 다섯 개를 이스케이프하는 것이 HTML 컨텍스트 출력 인코딩의 핵심인 것은 맞습니다. 다만 HTML 텍스트와 속성 컨텍스트에 한해서입니다. URL, JavaScript 문자열, CSS는 각자의 컨텍스트별 인코딩이 필요하며, 엔티티 이스케이프만으로는 그곳에서의 임의 주입이 안전해지지 않습니다.
이름 있는 엔티티와 숫자 엔티티, 어느 쪽을 출력해야 하나요?
숫자 참조(&amp;#xE9;)는 모든 HTML과 XML 파서에서 동작합니다. 이름 있는 엔티티는 더 읽기 좋지만 XML은 다섯 개만 미리 정의하므로, &amp;eacute; 는 엄격한 XML/XHTML 파이프라인을 깨뜨립니다. 망설여진다면 숫자로 하세요.
왜 제 데이터에 &amp;amp;#39; (이중 인코딩)가 보이나요?
두 계층이 각각 한 번씩 인코딩한 것입니다. 첫 번째 인코딩의 &amp; 가 두 번째 처리에서 다시 이스케이프됐습니다. 여기서 두 번 디코딩해 텍스트를 복구한 뒤, 인코딩하지 말아야 할 계층을 찾아 고치세요.
관련 도구