Công cụ này làm gì
HTML entity là các mã đại diện cho ký tự, như < cho < và é cho é. Công cụ này escape văn bản thành entity để có thể hiển thị an toàn trong trang web, và giải mã entity trở lại văn bản thuần, ví dụ khi bạn sao chép mã từ CMS hoặc mẫu email.
Phần mã hóa dùng toàn bộ danh sách HTML5 với hơn 2.000 tham chiếu dạng tên, và phần giải mã hiểu tham chiếu dạng tên, thập phân (©) và thập lục phân (©) đúng như trình duyệt.
Cách sử dụng
- Dán văn bản hoặc HTML vào ô Đầu vào, tải lên một tệp, hoặc nhấn Ví dụ.
- Chọn Mã hóa hoặc Giải mã.
- Khi mã hóa, chọn mức độ mã hóa:
- Chỉ & < > ” ’: mức tối thiểu cần thiết để đưa văn bản vào HTML hoặc thuộc tính.
- Thêm ký tự ngoài ASCII, dạng tên: biến thêm các ký tự như é, © và — thành entity dạng tên, và ký tự nào không có tên thành tham chiếu dạng số.
- Thêm ký tự ngoài ASCII, dạng số: tương tự, nhưng luôn dùng dạng số (
é), cũng là XML hợp lệ. - Mọi ký tự có tên: mã hóa cả dấu câu như
.và/, hữu ích khi một hệ thống loại bỏ các ký tự đó.
- Sao chép hoặc tải kết quả xuống. Dùng làm đầu vào cho phép giải mã lại để kiểm tra chuyển đổi qua lại.
Ví dụ
<p>Café & "crème brûlée"</p>
khi chỉ mã hóa các ký tự đặc biệt sẽ thành
<p>Café & "crème brûlée"</p>
và khi dùng entity dạng tên cho ký tự ngoài ASCII sẽ thành
<p>Café & "crème brûlée"</p>
Ứng dụng thường gặp
Hiển thị đoạn code trên blog mà trình duyệt không render nó, đưa văn bản của người dùng vào email HTML, sửa văn bản bị escape hai lần như &amp; (giải mã một lần), hoặc làm cho tệp an toàn với hệ thống chỉ chấp nhận ASCII.
Câu hỏi thường gặp
› Những ký tự nào bắt buộc phải escape trong HTML?
Trong văn bản, hãy escape & và <. Bên trong giá trị thuộc tính, escape thêm dấu nháy đang bao quanh giá trị đó. Escape & < > " và ' ở mọi nơi, như mặc định ở đây, thì luôn an toàn.
› Tôi nên dùng entity dạng tên hay dạng số?
Cả hai đều hoạt động trên mọi trình duyệt hiện đại. Entity dạng tên như é dễ đọc hơn; tham chiếu dạng số như é còn dùng được trong XML và trong các parser cũ chỉ biết vài tên. Với trang UTF-8, thường bạn không cần mã hóa ký tự ngoài ASCII.
› Giải mã có xử lý entity thiếu dấu chấm phẩy không?
Có. Công cụ tuân theo đặc tả HTML, nên các dạng cũ như © không có dấu chấm phẩy được giải mã giống như trình duyệt làm. Các tên không xác định như &foo; được giữ nguyên.
› Escape có đủ để ngăn XSS không?
Escape là cách phòng vệ đúng cho văn bản đặt bên trong phần tử HTML và thuộc tính có dấu nháy. Nó không làm cho dữ liệu không đáng tin trở nên an toàn bên trong khối script, khối style, thuộc tính xử lý sự kiện hay URL, những chỗ cần mã hóa theo ngữ cảnh riêng.