인코딩

HTML Entities Encode/Decode

HTML 엔티티 인코딩 및 디코딩 — 페이지에서 특수 문자를 안전하게 표시.

HTML entities are a way to write characters that would otherwise break markup (<, >, &) or have no keyboard key, as safe text sequences like &lt; or &amp;. This tool encodes and decodes such entities right in your browser.

How to use it

Common uses

Things to keep in mind

HTML entity escaping only protects against XSS via a page's text content — it does not protect a JavaScript context (innerHTML, eval) or href/src attributes containing unvalidated URLs.

Encode exactly at the point where text gets inserted into HTML, not ahead of time when saving to a database — otherwise the data gets mangled when reused outside an HTML context.

이 도구에 대한 아티클: HTML Entities: 특수 문자를 안전하게 표시하는 방법

자주 묻는 질문

HTML 엔티티는 왜 필요한가요?

<, >, & 같은 문자는 HTML에서 태그나 엔티티의 시작으로 해석되기 때문에 사용자 입력이나 텍스트를 그대로 넣으면 마크업이 깨지거나 XSS 위험이 생길 수 있습니다. 엔티티로 인코딩하면 이런 문자를 안전하게 화면에 표시할 수 있습니다.

named entity(&amp;)와 numeric entity(&#38;)는 뭐가 다른가요?

&amp;처럼 이름으로 표기하는 named entity와 &#38; 또는 &#x26;처럼 문자 코드로 표기하는 numeric entity 둘 다 같은 문자를 나타냅니다. named entity는 가독성이 좋고, numeric entity는 이름이 정의되지 않은 문자에도 쓸 수 있습니다.

이 도구는 서버로 데이터를 전송하나요?

아니요. 인코딩과 디코딩 모두 브라우저 안에서 처리되며 입력한 텍스트는 서버로 전송되지 않습니다.

속성 안의 텍스트는 본문과 다르게 이스케이프해야 하나요?

기본 문자(<, >, &)는 똑같이 이스케이프하지만, 따옴표로 감싼 속성 안에서는 속성을 감싼 바로 그 종류의 따옴표를 추가로 이스케이프하는 것이 중요합니다 — 그렇지 않으면 값이 예상보다 일찍 "끊어질" 수 있습니다.

HTML 이스케이프가 모든 종류의 XSS를 막아주나요?

아니요. 가장 흔한 벡터인 텍스트를 HTML 콘텐츠에 삽입하는 방식은 막아주지만, JavaScript 컨텍스트를 통한 XSS(예: innerHTML 이후 코드 실행)나 검증되지 않은 href/src의 URL로부터는 보호하지 못합니다.

아티클: 인코딩

Base64: 인코딩이 필요한 이유와 작동 방식

Base64가 바이너리 데이터를 ASCII 텍스트로 바꾸는 방법과 실제로 언제 필요한지.

Base32: Base64와 다른 점과 더 편리한 경우

대소문자를 구분하지 않는 Base32 알파벳과 Base64보다 편리한 상황.

URL Encode/Decode: 링크에서의 퍼센트 인코딩

주소와 매개변수의 특수 문자가 %XX 시퀀스로 바뀌는 과정.

JWT: 토큰 구조와 JWT를 "디코딩"한다는 것의 의미

JWT의 header, payload, signature와, 디코딩이 서명 검증과 다른 이유.

Unicode Escape: \uXXXX 시퀀스의 의미

JSON과 JS 문자열에 나타나는 \u0041 같은 시퀀스가 어디서 오는지, 무엇을 의미하는지.

ROT13과 시저 암호: 단순한 문자 치환

13글자 이동이 ROT13을 자기 역함수로 만드는 이유와 오늘날에도 쓰이는 이유.

Punycode: 국제화 도메인이 DNS에서 작동하는 방식

라틴 문자가 아닌 문자를 포함한 도메인이 xn-- 접두사가 붙은 ASCII 형식으로 바뀌는 과정.

모스 부호: 텍스트가 점과 선으로 바뀌는 원리

문자를 점과 선으로 인코딩하는 원리와 모스 부호가 오늘날 어디에 쓰이는지.

Data URI: 이미지를 코드에 직접 삽입해야 할 때

Data URI가 파일 내용을 HTML이나 CSS에 직접 삽입하는 방식과 그럴 만한 가치가 있는 경우.

Gzip + Base64: 텍스트로 전송하기 위한 데이터 압축

압축된 바이너리 데이터를 텍스트 필드에 넣기 전에 Base64로도 인코딩하는 이유.

XML Entities: XML 문서에서 문자 이스케이프하기

이것이 없으면 파싱 중 문서가 깨지는, XML의 다섯 가지 필수 엔티티.