nicetool.dev logo

Mã hóa / Giải mã HTML Entity

Escape văn bản trước khi chèn vào HTML để tránh vỡ giao diện và lỗ hổng XSS.

Đầu vào
Kết quả

Entity thường dùng

Bấm vào một entity để sao chép.

HTML entity là gì?

HTML entity là mã đại diện cho các ký tự đặc biệt hoặc ký tự dành riêng, ví dụ &lt; cho < và &amp; cho &. Mã hóa văn bản do người dùng nhập trước khi hiển thị dưới dạng HTML giúp markup hợp lệ và ngăn chặn tấn công XSS.

Tính năng

  • • Chỉ mã hóa ký tự dành riêng hoặc mọi ký tự ngoài ASCII
  • • Định dạng entity dạng tên, thập phân và thập lục phân
  • • Giải mã mọi entity HTML5 dạng tên và dạng số
  • • Bảng tra cứu nhanh các entity phổ biến

Xử lý cục bộ

Việc mã hóa và giải mã diễn ra trong trình duyệt. Nội dung của bạn không bao giờ được gửi lên máy chủ.

100% phía trình duyệt.

Cách dùng công cụ HTML Entities

  1. 1

    Chọn Encode để chuyển ký tự đặc biệt thành thực thể HTML, hoặc Decode để đổi các thực thể như &lt; hay &#169; về ký tự gốc.

  2. 2

    Khi mã hóa, chọn chế độ: Basic chỉ thoát & < > " và ', Named dùng thực thể như &eacute;, Decimal và Hex đổi mọi ký tự ngoài ASCII thành mã số.

  3. 3

    Dán văn bản hoặc HTML vào. Kết quả cập nhật ngay.

  4. 4

    Sao chép kết quả, hoặc dùng "Dùng kết quả làm đầu vào" để xử lý tiếp. Bấm vào một mục trong bảng tham khảo để sao chép thực thể thông dụng.

Ví dụ thực tế

Hiển thị code trên trang web

Muốn hiển thị <div class="box"> dưới dạng chữ trong bài blog hay tài liệu, hãy mã hóa thành &lt;div class=&quot;box&quot;&gt; để trình duyệt không hiểu nó là thẻ HTML.

Nội dung người dùng an toàn

Thoát văn bản do người dùng nhập trước khi chèn vào HTML giúp tránh vỡ bố cục và tấn công XSS. Chế độ Basic xử lý đúng năm ký tự quan trọng.

Sửa văn bản bị mã hóa hai lần

Thấy &amp;amp; hay &amp;quot; trên trang hoặc trong RSS? Giải mã một hoặc hai lần để tìm chỗ văn bản bị thoát quá nhiều lần.

Hệ thống chỉ nhận ASCII

Một số template email, CMS cũ hay nguồn XML chỉ chấp nhận ASCII. Chế độ Decimal hoặc Hex đổi ê, ữ thành mã như &#7919; để giữ nguyên với mọi bảng mã.

Câu hỏi thường gặp

Những ký tự nào phải thoát trong HTML?+

Trong nội dung văn bản, phải thoát & và <. Trong giá trị thuộc tính, thoát thêm dấu nháy bao quanh giá trị (" hoặc '). Thoát cả > là thói quen phổ biến và vô hại.

Nên dùng thực thể có tên hay dạng số?+

Cả hai hiển thị như nhau. Thực thể có tên như &copy; dễ đọc hơn; dạng số như &#169; dùng được cho mọi ký tự Unicode, kể cả ký tự không có tên.

Thoát HTML có đủ chống XSS không?+

Đây là cách phòng thủ đúng cho văn bản đặt giữa các thẻ hoặc trong thuộc tính có dấu nháy. Văn bản trong <script>, style, trình xử lý sự kiện hay URL cần cách thoát riêng theo ngữ cảnh, việc mà các framework hiện đại đã lo giúp bạn.

Chữ có dấu tiếng Việt có cần thực thể không?+

Không, nếu trang được phục vụ dưới dạng UTF-8, mặc định hiện nay. Thực thể cho chữ có dấu chỉ cần với hệ thống giới hạn ở ASCII.