Mã hóa & Giải mã HTML Entity
Escape văn bản để chèn an toàn vào HTML, hoặc chuyển các entity như & và € về lại ký tự dễ đọc.
Chạy trên trình duyệtKhông cần đăng kýKhông tải lên gì
Cách dùng Mã hóa / Giải mã HTML Entity
- Chọn Mã hóa để escape văn bản, hoặc Giải mã để chuyển entity về lại ký tự.
- Khi mã hóa, chọn những ký tự cần escape: chỉ ký tự đặc biệt của HTML, thêm mọi ký tự ngoài ASCII, hoặc mọi thứ trừ chữ cái và chữ số.
- Chọn entity dạng tên (
é), thập phân (é) hoặc hex (é). - Sao chép kết quả. Khi giải mã, các entity không xác định được liệt kê để bạn phát hiện lỗi gõ.
Vì sao cần escape HTML?
Năm ký tự có ý nghĩa đặc biệt trong HTML: & mở đầu một entity, < và > bao quanh thẻ, còn " và ' đóng giá trị thuộc tính. Nếu văn bản do người dùng nhập có chứa chúng được chèn vào trang mà không escape, nó có thể làm vỡ bố cục hoặc tệ hơn là chèn script (cross-site scripting, XSS). Escape biến chúng thành &, <, >, " và ', được trình duyệt hiển thị như văn bản.
Entity dạng tên, thập phân và hex
Mọi ký tự Unicode đều có thể viết dưới dạng tham chiếu số: thập phân € hoặc hex € cho €. Nhiều ký tự phổ biến còn có tên dễ đọc, như €, © hay . Tham chiếu số dùng được ở mọi nơi, kể cả XML vốn chỉ định nghĩa năm entity có tên. Entity có tên thì dễ đọc hơn trong mã nguồn.
Có cần mã hóa ký tự ngoài ASCII không?
Không, nếu trang của bạn được phục vụ dưới dạng UTF-8, điều mà gần như mọi trang web hiện đại đều làm (<meta charset="utf-8">). Các ký tự như é, ü hay 日本 có thể viết trực tiếp. Mã hóa chúng hữu ích cho hệ thống cũ, mẫu email, hoặc khi một quy trình xử lý làm hỏng văn bản ngoài ASCII.
Escape phụ thuộc vào ngữ cảnh
Escape HTML entity bảo vệ văn bản đặt trong nội dung phần tử và thuộc tính có dấu nháy. Nó không đủ cho giá trị bên trong khối <script>, trình xử lý sự kiện nội tuyến, CSS hoặc URL, mỗi nơi cần cách mã hóa riêng. Hãy ưu tiên cơ chế tự động escape của framework (React, Vue, Jinja, Blade) thay vì tự ghép chuỗi.
Câu hỏi thường gặp
Những ký tự nào bắt buộc phải escape trong HTML?
& và < là bắt buộc. Trong giá trị thuộc tính, hãy escape thêm loại dấu nháy bạn đã dùng. Escape cả năm ký tự (& < > " ') là mặc định an toàn.&nbsp; là gì?
Vì sao &copy2024 lại giải mã thành ©2024?
©, & và <, ngay cả khi thiếu dấu chấm phẩy ở cuối. Bộ giải mã này tuân theo cùng quy tắc. Hãy luôn viết dấu chấm phẩy trong HTML của bạn.Dấu nháy đơn là &apos; hay &#39;?
' hợp lệ trong HTML5 và XML nhưng không hợp lệ trong HTML 4, nên dạng số ' hoặc ' là lựa chọn tương thích nhất và là thứ bộ mã hóa này xuất ra.