HTML 엔티티 변환기
HTML 특수문자를 엔티티로 변환합니다.
자주 사용되는 HTML 엔티티
| 문자 | Named Entity | Numeric | 설명 |
|---|---|---|---|
| < | < | < | 작다 (Less than) |
| > | > | > | 크다 (Greater than) |
| & | & | & | 앰퍼샌드 (Ampersand) |
| " | " | " | 큰따옴표 (Double quote) |
| ' | ' | ' | 작은따옴표 (Single quote) |
| |   | 줄바꿈 없는 공백 | |
| © | © | © | 저작권 기호 |
| ® | ® | ® | 등록상표 기호 |
| ™ | ™ | ™ | 상표 기호 |
| € | € | € | 유로 기호 |
| £ | £ | £ | 파운드 기호 |
| ¥ | ¥ | ¥ | 엔/원 기호 |
HTML 엔티티 변환기 안내
HTML 엔티티란?
HTML 엔티티는 웹 문서에서 특수한 의미를 가지는 문자를 안전하게 표현하기 위한 코드입니다. &로 시작하고 세미콜론(;)으로 끝나는 형태이며, 브라우저가 이를 해석하여 원래 문자로 화면에 표시합니다. <, >, & 같은 HTML 예약 문자뿐만 아니라 저작권 기호(©), 화폐 기호(€) 등 키보드로 직접 입력하기 어려운 특수 문자도 엔티티를 통해 사용할 수 있습니다. 웹 개발에서 HTML 엔티티를 올바르게 사용하는 것은 페이지의 정상 렌더링과 보안 양쪽 모두에 중요합니다.
시작하기
- 상단 탭에서 '인코딩' 또는 '디코딩' 모드를 선택합니다.
- 인코딩 옵션에서 특수문자만 변환할지, 모든 문자를 변환할지 정합니다.
- 엔티티 형식을 Named, Numeric, Hex 중에서 골라 선택합니다.
- 왼쪽 입력창에 변환할 텍스트를 붙여넣거나 직접 입력합니다.
- '실시간' 체크가 켜져 있으면 입력 즉시 결과가 오른쪽에 나타납니다.
- 교환 버튼을 누르면 출력 결과가 입력으로 이동하며 모드도 자동 전환됩니다.
기능 소개
- HTML 특수문자를 엔티티 코드로 인코딩
- 엔티티 코드를 원래 문자로 디코딩
- Named(&), Numeric(&), Hex(&) 세 가지 형식 지원
- 특수문자만 변환하거나 모든 비-ASCII 문자 변환 선택 가능
- 실시간 자동 변환 및 입출력 즉시 교환 기능
- 클립보드에 한 번의 클릭으로 결과 복사
주의할 점
- 보안을 위해서는 사용자 입력을 HTML에 삽입하기 전에 반드시 인코딩하세요.
- Named Entity는 가독성이 좋지만, 모든 문자에 이름이 있는 것은 아닙니다.
- Numeric과 Hex 형식은 모든 유니코드 문자를 표현할 수 있어 범용적입니다.
- 이미 인코딩된 텍스트를 다시 인코딩하면 이중 인코딩이 되므로 주의하세요.
- 이 도구는 브라우저에서 모든 처리가 이루어지며, 데이터가 서버로 전송되지 않습니다.
활용 팁
- 블로그나 웹페이지에 HTML 코드 예제를 텍스트로 표시할 때
- 사용자 입력 데이터를 안전하게 HTML에 출력하여 XSS 공격 방지
- 이메일 템플릿 작성 시 특수문자가 깨지지 않도록 변환
- CMS나 게시판에서 HTML 태그가 실행되지 않도록 이스케이프 처리
- 국제 문자(악센트, 한자 등)를 ASCII 호환 형태로 변환
자주 하는 질문
Q: 왜 HTML 엔티티를 사용해야 하나요?
HTML에서 <, >, & 같은 문자는 태그와 엔티티를 정의하는 예약 문자입니다. 이 문자들을 텍스트로 표시하려면 엔티티로 변환해야 브라우저가 코드로 해석하지 않고 화면에 그대로 보여줍니다.
Q: Named Entity와 Numeric Entity의 차이점은 무엇인가요?
Named Entity(& 등)는 사람이 읽기 쉬운 이름을 사용하고, Numeric Entity(& 등)는 유니코드 코드 포인트 숫자를 사용합니다. Named는 일부 문자에만 존재하지만, Numeric은 모든 유니코드 문자를 표현할 수 있습니다.
Q: XSS 공격 방지에 HTML 엔티티가 어떻게 도움이 되나요?
사용자 입력을 HTML에 출력할 때 엔티티로 변환하면 <script> 같은 태그가 실행되지 않고 텍스트로만 표시됩니다. 이를 통해 악성 스크립트 삽입(XSS)을 효과적으로 차단할 수 있습니다.
Q: Hex 엔티티는 언제 사용하나요?
Hex 형식(& 등)은 16진수 코드를 사용하며, CSS나 JavaScript에서 유니코드 이스케이프와 형태가 비슷해 개발자에게 익숙합니다. 특히 비-라틴 문자를 다룰 때 유용합니다.
Q: 특수문자만 변환과 모든 문자 변환의 차이는?
특수문자만 변환은 <, >, &, ", ' 등 HTML 예약 문자만 처리합니다. 모든 문자 변환은 비-ASCII 문자(한글, 이모지, 악센트 문자 등)까지 모두 엔티티로 바꿉니다.
Q: 이중 인코딩이란 무엇인가요?
이미 엔티티로 변환된 텍스트를 다시 인코딩하면 &amp; 같은 형태가 됩니다. 이를 방지하려면 인코딩 전에 텍스트가 이미 인코딩되어 있는지 확인하세요.
Q: 는 일반 공백과 뭐가 다른가요?
는 줄바꿈이 일어나지 않는 공백(Non-breaking space)입니다. 일반 공백은 브라우저가 연속된 공백을 하나로 축소하지만, 는 그대로 유지됩니다. 여러 칸의 공백이 필요한 경우에 사용합니다.
Q: 입력 데이터가 서버로 전송되나요?
아닙니다. 이 도구는 브라우저 내에서 JavaScript로 모든 변환을 처리합니다. 입력한 데이터는 외부 서버로 전송되지 않으므로 민감한 정보도 안심하고 사용할 수 있습니다.
Q: 교환 버튼은 어떤 기능인가요?
교환 버튼을 누르면 출력 결과가 입력창으로 이동하고, 인코딩/디코딩 모드가 자동으로 반전됩니다. 인코딩 결과를 바로 다시 디코딩하여 원본을 확인하고 싶을 때 편리합니다.
Q: 모든 브라우저에서 HTML 엔티티가 동일하게 작동하나요?
Named Entity 중 일부는 오래된 브라우저에서 지원되지 않을 수 있습니다. 가장 안전한 방법은 Numeric 또는 Hex 형식을 사용하는 것입니다. 기본적인 엔티티(<, >, &, ")는 모든 브라우저에서 동일하게 지원됩니다.