onlinetools.dev

Mã hóa / giải mã thực thể HTML

Thoát ký tự cho HTML hoặc đổi thực thể kiểu & về đúng ký tự

Chạy cục bộ
loading…
Về công cụ này

Thoát ký tự cho văn bản để đưa an toàn vào HTML — & thành &amp;, < thành &lt; — hoặc giải mã đoạn đầy thực thể trở lại thành ký tự đọc được, bao gồm thực thể có tên (&rarr;), tham chiếu số hệ thập phân (&#169;) và hệ thập lục phân (&#xA9;).

Việc mã hóa có hai mức: năm ký tự thiết yếu vốn phá vỡ cấu trúc HTML (& < > " '), tức là đủ để đảm bảo đúng đắn; hoặc mọi ký tự ngoài ASCII, hữu ích khi có mắt xích nào đó trong chuỗi công cụ giữa bạn và trang web làm hỏng UTF-8. Chế độ chỉ dùng dạng số bỏ qua thực thể có tên để tương thích tối đa với các trình phân tích XML nghiêm ngặt, vốn chỉ bảo đảm năm thực thể định nghĩa sẵn.

Nửa dùng hằng ngày chính là phần giải mã: dán một đoạn cào về hay một phản hồi API đầy &#x27; vào và nhận lại văn bản sạch sẽ. Những tên thực thể lạ được giữ nguyên chứ không bị đoán mò.

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

Trong HTML thì bắt buộc phải thoát những ký tự nào?
Trong phần nội dung văn bản: & và <. Trong giá trị thuộc tính: thêm cả dấu nháy đang bao thuộc tính đó (" hoặc '). Thoát dấu > là thói quen phổ biến nhưng không bắt buộc. Mọi ký tự còn lại có thể xuất hiện nguyên dạng trong một tài liệu UTF-8.
Mã hóa thực thể có phải là biện pháp chống XSS không?
Thoát năm ký tự cấu trúc đúng là phần cốt lõi của việc mã hóa đầu ra trong ngữ cảnh HTML — nhưng chỉ với văn bản HTML và giá trị thuộc tính. URL, chuỗi JavaScript và CSS cần cách mã hóa riêng theo ngữ cảnh của chúng; chỉ thoát thực thể thôi thì không làm cho việc chèn mã tùy ý trở nên an toàn ở những chỗ đó.
Nên xuất ra thực thể có tên hay dạng số?
Tham chiếu dạng số (&#xE9;) chạy được trên mọi trình phân tích HTML và XML. Thực thể có tên dễ đọc hơn, nhưng XML chỉ định nghĩa sẵn năm cái, nên &eacute; sẽ làm vỡ một quy trình XML/XHTML nghiêm ngặt. Nếu phân vân, hãy chọn dạng số.
Vì sao trong dữ liệu của tôi lại thấy &amp;#39; (mã hóa hai lần)?
Hai tầng cùng mã hóa, mỗi tầng một lần: dấu & của lần mã hóa đầu bị lần thứ hai thoát tiếp. Hãy giải mã hai lượt ở đây để lấy lại văn bản, rồi tìm và sửa cái tầng lẽ ra không nên mã hóa.
Công cụ liên quan