Tất cả hướng dẫn

Vì sao văn bản hiện “&” và cách khắc phục

Đăng ngày · Cập nhật ngày 3 phút đọc

Khi một văn bản hiện “&” thay vì “&”, một thực thể HTML đã bị mã hóa thêm một lần. Công cụ giải mã từng cấp một và báo cho bạn khi còn sót lại.

Thực thể HTML là gì

Thực thể là một chuỗi dấu biểu thị một ký tự dành riêng cho mã của trang. Năm thực thể thường gặp.

Ký tựThực thể
&&
<&lt;
>&gt;
"&quot;
' (dấu nháy thẳng)&#039;

Mã hóa kép đến từ đâu

Một văn bản đôi khi đi qua hai hệ thống, mỗi hệ thống đều mã hóa: một trình soạn thảo, rồi một mẫu trang. Mỗi lượt biến đổi dấu “&” của thực thể trước đó. Với Mã hóa/giải mã thực thể HTML, mã hóa “Tom & Jerry” cho “Tom &amp; Jerry”, rồi mã hóa kết quả đó cho “Tom &amp;amp; Jerry”.

BướcVăn bản kết quả
Văn bản gốcTom & Jerry
Mã hóa một lầnTom &amp; Jerry
Mã hóa hai lầnTom &amp;amp; Jerry

Trình duyệt giải mã một cấp khi hiển thị. Một văn bản mã hóa hai lần vì thế hiển thị “&amp;” thay vì “&”.

Giải mã từng cấp một

Công cụ gỡ một cấp thực thể duy nhất ở mỗi lượt. Nếu kết quả vẫn còn thực thể, chế độ “Cả hai” báo điều đó và bạn chạy giải mã lại trên kết quả.

Văn bảnLần giải mã thứ nhấtLần giải mã thứ hai
Tom &amp;amp; JerryTom &amp; JerryTom & Jerry
&amp;lt;b&amp;gt;gras&amp;lt;/b&amp;gt;&lt;b&gt;gras&lt;/b&gt;<b>gras</b>

Giải mã một cấp duy nhất giúp không hoàn tác một phép mã hóa có chủ ý: một ví dụ mã cần hiển thị “&amp;” trên màn hình được viết là “&amp;amp;” trong trang.

Chữ có dấu và ký hiệu

Giải mã hiểu mọi thực thể có tên kết thúc bằng dấu chấm phẩy, không chỉ năm thực thể thông dụng. “caf&eacute; &agrave; 5&nbsp;&euro; &copy; 2026” cho “café à 5 € © 2026”, khoảng trắng không ngắt trở thành một khoảng trắng không ngắt thật.

Thực thể dạng số

Thực thể dạng số cũng được giải mã: “&#233;t&#xE9;” cho “été”, và “&#x1F600;” cũng như “&#128512;” cho cùng một biểu tượng cảm xúc.

Điều công cụ để nguyên

  • Một thực thể không xác định như “&inconnue;” được giữ nguyên.
  • Một thực thể không có dấu chấm phẩy cuối, như “&amp” hay “&lt” trong một câu, không bị động đến.
  • Một địa chỉ có tham số, như “https://exemple.fr/?a=1&param=2&copy=4”, vẫn chính xác: “&param” và “&copy” không bị coi là thực thể ở đó.

Mã hóa mã để hiển thị

Để hiển thị một đoạn mã trong trang, hãy mã hóa nó một lần. Văn bản “<a href="x">l’été & plus</a>” cho “&lt;a href=&quot;x&quot;&gt;l&#039;été &amp; plus&lt;/a&gt;”. Chữ có dấu không bị mã hóa, chỉ năm ký tự dành riêng mới bị.

Tránh vấn đề

Chỉ mã hóa một lần, vào phút chót, khi ghi vào trang. Để thay hàng loạt phần còn sót lại của một lần mã hóa sai, Tìm và thay thế trong văn bản rất phù hợp. Địa chỉ web theo một cách mã hóa khác, được giải thích trong Đừng nhầm lẫn Base64, hash và địa chỉ được mã hóa.

Kiểm tra kết quả

  1. Chạy giải mã lại chừng nào công cụ còn báo thực thể còn sót.
  2. So sánh với văn bản gốc trên màn hình.
  3. Kiểm tra khoảng trắng không ngắt và biểu tượng cảm xúc.

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