Công cụ mã hóa thực thể HTML
Escape văn bản cho HTML: & < > " ' thành thực thể, tùy chọn chuyển mọi ký tự ngoài ASCII thành thực thể tên, thập phân hoặc hex. Tránh vỡ markup, chạy cục bộ.
44 ký tự · 49 byte (UTF-8)
0 ký tự · 0 byte (UTF-8)
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Mã hóa HTML là gì?
Escape văn bản để có thể đặt vào HTML mà không bị hiểu là markup. Mặc định năm ký tự quan trọng & < > " ' được mã hóa; bạn cũng có thể chuyển mọi ký tự ngoài ASCII thành thực thể, dùng tên HTML 4 như é hoặc tham chiếu số.
Cách sử dụng Mã hóa HTML
- Gõ hoặc dán văn bản hay HTML vào ô Đầu vào.
- Chọn Ký tự cần mã hóa: chỉ
& < > " ', hoặc thêm cả mọi ký tự ngoài ASCII. - Chọn Dạng thực thể: tên, thập phân hoặc thập lục phân.
- Sao chép văn bản đã escape từ ô Đầu ra.
Ví dụ
<a href="x">Tom & Jerry's</a>
<a href="x">Tom & Jerry's</a>
Khi nào nên dùng Mã hóa HTML
Dùng khi chèn văn bản do người dùng nhập hoặc văn bản nguyên văn vào HTML, template kiểu XML hoặc tài liệu hiển thị mã. Chỉ cần mã hóa mọi ký tự ngoài ASCII với hệ thống không lưu được UTF-8. Lưu ý escape cho văn bản HTML là không đủ bên trong <script>, style hoặc thuộc tính URL – những chỗ đó cần escape theo ngữ cảnh riêng.
Mã hóa HTML hoạt động như thế nào
Văn bản được xử lý theo từng mã điểm. &, <, >, " và ' luôn được thay thế (' thành ', hoạt động trong cả HTML 4 và 5). Ở chế độ ngoài ASCII, mọi ký tự trên U+007E được thay bằng tên thực thể HTML 4 nếu có, nếu không thì bằng tham chiếu số; emoji thành một tham chiếu duy nhất như 😀, không phải hai nửa surrogate.
Các Trường Hợp Sử Dụng Phổ Biến
- Hiển thị mã HTML mẫu trên trang web
- Escape dữ liệu người dùng trước khi chèn vào markup
- Đặt văn bản vào thuộc tính HTML một cách an toàn
- Tạo HTML chỉ gồm ASCII cho mẫu email cũ
Lưu Ý Bảo Mật
Escape phụ thuộc ngữ cảnh: kết quả của công cụ này an toàn trong nội dung phần tử HTML và thuộc tính có dấu nháy, không an toàn bên trong khối <script> hoặc thuộc tính không có dấu nháy.
Câu Hỏi Thường Gặp
Vì sao dùng ' thay vì '?
' không được định nghĩa trong HTML 4, nên một số parser cũ không nhận ra. ' hoạt động ở mọi nơi.
Tôi có cần mã hóa é hay emoji không?
Không nếu trang được phục vụ dạng UTF-8, vốn là chuẩn hiện nay. Chỉ dùng tùy chọn ngoài ASCII cho hệ thống chỉ hỗ trợ ASCII.
Điều này có chống được XSS không?
Đây là cách escape đúng cho văn bản HTML và giá trị thuộc tính có dấu nháy. Ngữ cảnh khác (JavaScript, CSS, URL) cần cách escape riêng, và framework có escape tự động là lựa chọn an toàn hơn.