Chuyển đến nội dung chính

Mã Hóa & Giải Mã HTML miễn phí

Mã hóa các ký tự đặc biệt thành thực thể HTML hoặc giải mã thực thể trở lại văn bản thuần. Tức thì, trên trình duyệt.

Hoạt động ngoại tuyến sau khi tải
Đầu ra:
Ví dụ:
Văn bản thuần / HTML
HTML đã mã hóa
Kết quả sẽ hiển thị tại đây...
Tham chiếu thực thể HTML phổ biến
&&
<&lt;
>&gt;
"&quot;
'&#39;
·&nbsp;
©&copy;
®&reg;
™&trade;
€&euro;
—&mdash;
…&hellip;

Công dụng phổ biến

  • Mã Hóa Nội Dung Cho RSS FeedMã hóa nội dung HTML cho các mô tả mục nguồn cấp dữ liệu RSS — yêu cầu bởi tiêu chuẩn RSS 2.0.
  • Vệ Sinh Đầu Vào Người Dùng Cho Đầu Ra HTMLMã hóa chuỗi do người dùng cung cấp trước khi chèn chúng vào HTML — ngăn chặn các cuộc tấn công tiêm XSS.
  • Mã Hóa Ký Tự Đặc Biệt cho Email HTMLMã hóa các ký tự như &, <, > và © dưới dạng thực thể HTML để chúng hiển thị chính xác trên tất cả các ứng dụng khách email.
  • Mã Hóa Nội Dung Người Dùng để Hiển Thị WebNgăn chặn các cuộc tấn công XSS bằng cách mã hóa nội dung do người dùng tạo ra trước khi hiển thị nó trong các trang HTML.
  • Mã Hóa Nội Dung cho XMLMã hóa các ký tự đặc biệt cho tệp XML, nguồn cấp RSS, sơ đồ trang web và tải trọng SOAP.

Cách hoạt động

Mã hóa và giải mã HTML ở đây chạy hoàn toàn trong trình duyệt bằng thay thế regex tự viết và bảng tra thực thể có tên cố định — không thư viện mã hóa bên thứ ba, không gọi máy chủ. Để giải mã các thực thể có tên ít gặp (như &aacute; hoặc &ldquo;), công cụ giao cho bộ phân tích HTML của chính trình duyệt làm phương án dự phòng không tốn chi phí.

  1. 1
    Regex quét các ký tự cần thay
    Khi mã hóa, một trong hai regex hỗ trợ Unicode chạy trên đầu vào: một mẫu nhắm vào ~25 ký tự đặc biệt và có ý nghĩa trong HTML phổ biến, hoặc một mẫu rộng hơn bắt mọi điểm mã trên U+007F. Mỗi kết quả khớp được xử lý từng ký tự.
  2. 2
    Bảng tra hoặc codePointAt() tạo thực thể
    Với đầu ra thực thể có tên, ký tự khớp được tra trong bảng cố định (ví dụ & → &amp;, © → &copy;). Với đầu ra thập phân hoặc hex, String.codePointAt() lấy điểm mã Unicode và định dạng thành &#NNN; hoặc &#xNNN; — cặp thay thế (surrogate pair) được xử lý đúng vì regex dùng cờ Unicode 'u'.
  3. 3
    Regex một lượt giải mã thực thể về ký tự
    Khi giải mã, một lượt regex duy nhất nhận diện mọi token thực thể (&amp;, &#65;, &#x41;, v.v.) và chuyển mỗi token đến bộ xử lý phù hợp: parseInt hex (cơ số 16), Number() thập phân, tra ngược tên, hoặc — với thực thể không có trong bảng cố định — một phần tử textarea mà trình duyệt phân tích innerHTML một cách tự nhiên, trả về ký tự đúng từ bảng thực thể tích hợp của trình duyệt.
  4. 4
    Kết quả xuất hiện tức thì; sao chép qua Clipboard API
    Đầu ra được tính lại đồng bộ với mỗi lần gõ phím qua useMemo của React. Sao chép dùng navigator.clipboard.writeText() — Clipboard API bất đồng bộ hiện đại — với xử lý lỗi im lặng cho các ngữ cảnh bị hạn chế.

Công cụ liên quan

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