홈 › 개발·웹 도구

HTML 엔티티 변환

블로그·게시판에 코드를 그대로 보여 주고 싶을 때 ‘인코딩’, 복사한 글에 &· 가 보일 때 ‘디코딩’을 쓰세요.

입력한 내용은 서버로 보내지 않고 이 기기에서만 처리돼요

자주 쓰는 엔티티 표

HTML 엔티티는 왜 필요한가요

HTML에서 <와 >는 태그를 여닫는 기호, &는 엔티티를 시작하는 기호라서, 글 안에 이 글자들을 그대로 쓰면 브라우저가 태그로 오해해 글이 사라지거나 화면이 깨져요. 그래서 &lt;, &gt;, &amp;처럼 ‘엔티티’로 바꿔 적어요. 사용자가 입력한 글을 웹페이지에 넣을 때 이 변환을 빠뜨리면 다른 사람의 스크립트가 실행되는 XSS 보안 문제가 생길 수 있어요.

인코딩 범위 고르기

‘꼭 필요한 5개만’은 < > & " '만 바꿔요. UTF-8로 저장하는 요즘 웹페이지에서는 이것으로 충분하고, 한글은 그대로 두는 게 읽기 좋아요. ‘이름 있는 기호’는 ©, ™, —, “ ” 같은 기호를 &copy; 같은 이름 엔티티로, 나머지 영어 외 글자는 숫자 엔티티로 바꿔요. ‘영어 외 모든 글자’는 한글까지 &#xD64D;처럼 바꿔서, 인코딩이 맞지 않는 옛 시스템이나 이메일 본문에서도 글자가 깨지지 않게 해요. 이모지처럼 큰 글자도 하나의 숫자 엔티티로 정확히 바꿔요.

디코딩

디코딩은 브라우저의 HTML 해석기를 그대로 써서 HTML5에 정의된 이름 엔티티 2,000여 개와 10진수·16진수 숫자 엔티티를 모두 원래 글자로 풀어요. 세미콜론이 빠진 옛 표기(&copy 등)도 브라우저 규칙대로 처리해요. 태그는 실행하지 않고 글자 그대로 남겨요. 두 번 인코딩된 글(&amp;lt;)은 디코딩을 두 번 하면 돼요 — ‘결과를 입력으로’를 누르세요.

참고한 자료

자주 묻는 질문

&nbsp;를 일반 빈칸으로 바꾸고 싶어요.

디코딩하면 줄바꿈 안 되는 빈칸(U+00A0)이 돼요. 일반 빈칸이 필요하면 ‘공백 정리’ 도구로 한 번 더 바꾸세요.

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

페이지가 UTF-8이면 바꿀 필요가 없어요. 인코딩이 다른 옛 시스템에 넣을 때만 숫자 엔티티로 바꾸세요.

원(₩) 기호는 이름 엔티티가 없나요?

HTML에는 원 기호 이름 엔티티가 없어서 &#8361;(숫자 엔티티)로 써요.

함께 쓰면 좋은 도구