Cách dùng Mã hóa HTML Entity
- Chọn Mã hóa để escape văn bản cho HTML, hoặc Giải mã để chuyển entity về ký tự.
- Dán văn bản của bạn — kết quả sẽ cập nhật ngay khi bạn gõ.
- Khi mã hóa, chọn các ký tự cần chuyển (chỉ các ký tự đặc biệt của HTML, hoặc thêm dấu, ký hiệu và emoji) và định dạng entity: dạng tên, thập phân hoặc hex.
- Nhấn Sao chép. Dùng Hoán đổi để đưa kết quả chạy ngược lại theo chiều đối diện.
HTML entity là gì?
HTML entity là chuỗi escape đại diện cho những ký tự nếu không sẽ bị hiểu là markup, hoặc khó gõ trực tiếp. Chúng bắt đầu bằng & và kết thúc bằng ;, có ba dạng: tên (©), thập phân (©) và thập lục phân (©) — cả ba đều hiển thị ©. Việc mã hóa là bắt buộc khi bạn hiển thị văn bản do người dùng nhập hoặc đoạn code mẫu trên trang web: nếu không, <script> trong bình luận sẽ được thực thi thay vì hiển thị.
Năm ký tự bắt buộc phải escape
| Ký tự | Entity | Lý do |
|---|---|---|
& | & | Mở đầu mọi entity |
< | < | Mở một thẻ |
> | > | Đóng một thẻ |
" | " | Kết thúc giá trị thuộc tính đặt trong dấu nháy kép |
' | ' | Kết thúc giá trị thuộc tính đặt trong dấu nháy đơn (' không được định nghĩa trong HTML 4) |
Trong nội dung văn bản thông thường, escape & và < là đủ; trong giá trị thuộc tính, dấu nháy cũng phải được escape. Tùy chọn “Chỉ ký tự đặc biệt HTML” làm đúng việc này và giữ nguyên mọi thứ còn lại — lựa chọn phù hợp cho các trang UTF-8, hầu hết trang hiện nay.
Có còn cần entity cho dấu và ký hiệu không?
Nếu trang của bạn được phục vụ dưới dạng UTF-8 (<meta charset="utf-8">), bạn có thể viết trực tiếp é, € hoặc emoji. Việc mã hóa toàn bộ ký tự không thuộc ASCII vẫn hữu ích khi nội dung đi qua hệ thống không hỗ trợ UTF-8 tốt — CMS cũ, một số mẫu email, nguồn cấp XML hoặc file mã nguồn với encoding không xác định. Entity dạng tên chỉ có cho một tập hạn chế (Latin-1, chữ Hy Lạp, ký hiệu toán học và typography thông dụng); với các ký tự còn lại, như emoji, dùng tham chiếu số: 😀 → 😀.
Một số entity hữu ích
| Entity | Kết quả | Công dụng |
|---|---|---|
| (khoảng trắng không ngắt dòng) | Giữ “10 kg” trên cùng một dòng |
­ | (dấu gạch nối mềm) | Điểm ngắt từ tùy chọn trong từ dài |
— / – | — / – | Dấu gạch ngang |
… | … | Dấu ba chấm |
“ ” | “ ” | Dấu nháy typography |
€ © ™ | € © ™ | Ký hiệu |
Giải mã hoạt động thế nào
Bộ giải mã nhận diện toàn bộ 2.231 tham chiếu ký tự dạng tên được định nghĩa trong HTML Living Standard, cùng tham chiếu thập phân và thập lục phân. Nó tuân theo quy tắc của trình duyệt với các trường hợp đặc biệt: – thành dấu gạch ngang en (theo bảng ánh xạ Windows-1252) và mã điểm không hợp lệ thành �. Tên entity phân biệt chữ hoa, chữ thường — É là É, é là é. Với URL, hãy dùng URL Encoder, còn với dữ liệu nhị phân thì dùng Base64. Cần chuyển HTML thành văn bản dễ đọc? Thử HTML to Markdown.
Cũng được tìm dưới tên: mã hóa html, giải mã html, html entities, html escape, html unescape, ký tự đặc biệt html, html entity là gì, mã hóa ký tự html.
Các công cụ dùng kèm tốt với Mã hóa HTML Entity
- Định dạng HTML — Dán mã HTML đã nén hoặc lộn xộn và nhận lại HTML được thụt lề rõ ràng, nhất quán — bao gồm cả các khối <style> và <script> nhúng bên trong.
- Markdown sang HTML — Viết hoặc dán Markdown để nhận HTML sạch ngay lập tức, kèm bản xem trước đã được làm sạch, bảng GitHub-flavored, danh sách việc cần làm và khối code có rào chắn.
- Dịch Mã Morse — Nhập văn bản để có mã Morse, hoặc dán chấm và gạch để giải mã.
- Chuyển văn bản sang nhị phân — Nhập văn bản để xem dưới dạng mã nhị phân, hoặc dán chuỗi nhị phân (hoặc hex, bát phân, thập phân) để dịch ngược lại thành văn bản dễ đọc.
Câu hỏi thường gặp
Những ký tự nào phải được escape trong HTML?
& và < trong nội dung văn bản, cùng với " (và ' nếu bạn dùng dấu nháy đơn) bên trong giá trị thuộc tính. Việc escape > không bắt buộc nghiêm ngặt nhưng là cách làm phổ biến.Escape HTML có ngăn được XSS không?
<script>, event handler inline, CSS hoặc URL href="javascript:…", vì những ngữ cảnh này cần xử lý riêng.Khác biệt giữa &nbsp; và khoảng trắng thông thường là gì?
liên tiếp không bị gộp thành một như khoảng trắng thông thường.Nên dùng entity dạng tên hay dạng số?
é dễ đọc hơn; dạng số hoạt động với mọi ký tự Unicode và trong XML, vốn chỉ định nghĩa sẵn & < > " '.