HTML Entity Encoder/Decoder
This tool allows you to convert text with special characters to HTML entities and vice versa. HTML entities help display special characters correctly on web pages.
Mode
<
<
Less than sign
>
>
Greater than sign
&
&
Ampersand
"
"
Double quotation mark
'
'
Single quotation mark
©
©
Copyright symbol
®
®
Registered trademark
Cách sử dụng Bộ Mã Hóa/Giải Mã Thực Thể HTML
- 1
Nhập văn bản của bạn
Dán văn bản hoặc đoạn HTML bạn muốn chuyển đổi vào ô nhập liệu.
- 2
Chọn mã hóa hoặc giải mã
Nhấn Encode để chuyển các ký tự đặc biệt thành thực thể HTML, hoặc Decode để chuyển thực thể trở lại thành ký tự.
- 3
Nhận kết quả
Kết quả đã chuyển đổi xuất hiện ngay lập tức trong ô kết quả.
- 4
Sao chép kết quả
Dùng Copy Result để lấy văn bản đã mã hóa hoặc giải mã cho dự án của bạn.
Hướng dẫn thực dụng về thực thể HTML
Thực thể HTML là gì
Một thực thể HTML, gọi đầy đủ hơn là một tham chiếu ký tự, là một mã ngắn đại diện cho một ký tự đơn lẻ trong HTML. Mọi thực thể đều bắt đầu bằng một dấu và (&) và kết thúc bằng một dấu chấm phẩy (;). Thực thể cho phép bạn đưa vào những ký tự mà lẽ ra trình duyệt sẽ hiểu nhầm thành đánh dấu, những ký tự khó gõ, hoặc những ký tự không có trên bàn phím của bạn, tất cả trong khi vẫn giữ tệp mã nguồn ở dạng ASCII thuần.
Thực thể quan trọng vì hai lý do riêng biệt. Thứ nhất, một vài ký tự được HTML dành riêng và phải được thoát thì mới hiển thị đúng. Thứ hai, cả thế giới rộng lớn của các ký hiệu, chữ có dấu, ký hiệu tiền tệ, mũi tên và emoji đều có thể được viết một cách đáng tin cậy dưới dạng tham chiếu bất kể cách mã hóa văn bản của tệp. Công cụ này mã hóa các ký tự thành thực thể và giải mã thực thể trở lại thành các ký tự mà chúng đại diện.
Tham chiếu có tên so với tham chiếu dạng số
Có hai cách để viết một thực thể, và chúng có thể thay thế cho nhau về kết quả tạo ra. Một tham chiếu có tên dùng một nhãn dễ đọc với con người, chẳng hạn © cho dấu bản quyền, & cho dấu và, hoặc cho một khoảng trắng không ngắt. HTML định nghĩa một danh sách cố định các tên này, nên chỉ những ký tự đã được gán một tên mới có thể được viết theo cách này.
Một tham chiếu dạng số dùng điểm mã Unicode của ký tự thay cho một cái tên, và nó có thể đại diện cho bất kỳ ký tự nào. Dạng thập phân là một dấu và, một dấu thăng, điểm mã ở hệ cơ số 10, và một dấu chấm phẩy — ví dụ ©. Dạng thập lục phân thêm một chữ x sau dấu thăng và đưa ra điểm mã ở hệ cơ số 16 — ví dụ ©. Cả ba dạng ©, © và © đều hiển thị y hệt ký hiệu ©, vì 169 ở hệ thập phân bằng A9 ở hệ thập lục phân bằng điểm mã của dấu bản quyền.
Năm ký tự luôn cần được thoát
Hầu hết các ký tự là tùy chọn khi mã hóa, nhưng một nhóm nhỏ thì gần như bắt buộc trong mã nguồn HTML. Dấu và & (&) phải được thoát vì nó mở đầu mọi thực thể; để nó thô ngay cạnh một từ thì trình duyệt có thể cố phân tích một thực thể vốn không hề tồn tại ở đó. Dấu nhỏ hơn < (<) và dấu lớn hơn > (>) phải được thoát trong văn bản vì chúng giới hạn các thẻ. Bên trong giá trị thuộc tính, dấu nháy kép " (") và dấu nháy đơn ' (') cần được thoát để chúng không đóng thuộc tính quá sớm.
Mọi thứ còn lại chỉ là tiện lợi. Bạn có thể viết é trực tiếp trong một tệp UTF-8, hoặc viết thành é hay é — tất cả đều hợp lệ. Năm ký tự dành riêng thì khác: để sai chúng sẽ tạo ra đánh dấu hỏng, hoặc với dữ liệu đầu vào không tin cậy, một lỗ hổng tấn công kịch bản chéo trang (cross-site scripting), nên đó là những ký tự bạn không bao giờ được để chưa thoát ở sai chỗ.
Ví dụ cụ thể: ký hiệu và chữ có dấu
Giả sử bạn muốn một chân trang hiển thị dòng "© 2026 Café Ünïcode — 100% safe". Một số ký tự trong đó không phải ASCII thuần. Dấu bản quyền có thể được viết là © hoặc ©. Chữ é trong Café là é hoặc é, còn chữ Ü là Ü hoặc Ü. Dấu gạch ngang dài — là — hoặc —, và khoảng trắng không ngắt giữ "100%" dính liền với nhau là .
Mã hóa toàn bộ chuỗi cho ra một thứ kiểu như © 2026 Café Ünïcode — 100% safe, vốn được đảm bảo hiển thị y hệt bất kể cách mã hóa ký tự của trang được cấu hình ra sao. Giải mã nó ở đây sẽ đảo ngược quá trình và trả lại cho bạn dòng dễ đọc với các ký hiệu thật nằm đúng chỗ.
Chọn dạng có tên hay dạng số
Thực thể có tên thắng về độ dễ đọc. © và — cho người đọc về sau biết chính xác ký tự đó là gì, khiến mã nguồn dễ bảo trì hơn so với một bức tường toàn mã số. Cái giá phải trả là độ phủ: chỉ những ký tự đã được gán một tên mới có thể được viết theo tên, và danh sách này, dù lớn, vẫn không bao gồm mọi thứ.
Tham chiếu dạng số thắng về tính phổ quát và độ chính xác. Vì chúng định địa chỉ trực tiếp đến điểm mã Unicode, chúng có thể mã hóa bất kỳ ký tự nào tồn tại, kể cả những ký tự không có tên và kể cả emoji. Chúng cũng không gây mơ hồ, điều này tiện khi bạn cần chắc chắn về một ký hiệu khó hiểu. Một thông lệ phổ biến là dùng thực thể có tên cho nhóm quen thuộc nhỏ (©, &, , —) và dùng tham chiếu dạng số cho bất cứ thứ gì kỳ lạ.
Emoji và các ký tự vượt ngoài dải cơ bản
Emoji và nhiều ký hiệu nằm cao trong dải Unicode, vượt quá những giá trị mà một đơn vị mã kiểu cũ đơn lẻ có thể chứa, nhưng tham chiếu dạng số xử lý chúng gọn gàng vì chúng chỉ đơn giản gọi tên điểm mã. Emoji mặt cười toe toét có điểm mã U+1F600, nên nó có thể được viết dưới dạng tham chiếu thập phân 😀 hoặc tham chiếu thập lục phân 😀, cả hai đều tạo ra cùng một glyph.
Trong thực tế, lưu tệp của bạn ở dạng UTF-8 và dán thẳng emoji vào thường đơn giản hơn và cũng đúng đắn y như vậy. Tham chiếu dạng số trở nên giá trị khi một quy trình không thể được tin cậy để giữ nguyên các byte thô — một mẫu email, một hệ thống ép xuống ASCII, hay một ngữ cảnh mà bạn muốn ghi lại đúng điểm mã một cách không mơ hồ. Dù theo cách nào, ký tự xuất hiện hoàn toàn do điểm mã của nó quyết định.
Giải mã văn bản thực thể bị lỗi loạn
Một tác vụ thực tế rất phổ biến là dọn dẹp văn bản đến nơi đầy những mã thực thể hiện ra rõ mồn một. Bạn sao chép một đoạn văn từ một trang web hoặc một bản xuất cơ sở dữ liệu và thay vì dấu câu bình thường, bạn lại thấy &, ', " và ’ rải rác khắp trong đó. Điều đó nghĩa là văn bản đã bị mã hóa HTML ở đâu đó từ phía trước và không bao giờ được giải mã để hiển thị. Dán nó vào chế độ Decode ở đây sẽ biến những tham chiếu đó trở lại thành các ký tự &, ', " và dấu nháy cong thật.
Hãy để ý hiện tượng mã hóa kép, tình huống mà văn bản đã bị thoát hai lần và bạn thấy những chuỗi như &amp; hoặc &#39;. Ở đây các ký tự theo nghĩa đen &amp; phải trở thành & rồi thành &, nên cách sửa là giải mã nhiều hơn một lần cho đến khi không còn thực thể nào. Nếu một lượt giải mã duy nhất vẫn để lại & trong kết quả của bạn, hãy cho kết quả đi qua Decode lần nữa để bóc lớp thứ hai.
Những cạm bẫy thường gặp
Lỗi thường gặp nhất là thiếu dấu chấm phẩy. Một thực thể chỉ hợp lệ khi nó được kết thúc, nên © mà không có dấu chấm phẩy có thể không hiển thị thành dấu bản quyền. Một lỗi liên quan là mã hóa dấu và sau cùng thay vì trước tiên khi thoát bằng tay, điều này biến các thực thể khác của bạn thành văn bản theo nghĩa đen như &lt;.
Cũng hãy nhớ rằng thực thể là một khái niệm của HTML, chứ tự bản thân nó không phải một ranh giới bảo mật. Mã hóa dữ liệu đầu vào không tin cậy thành thực thể là một phần của việc ngăn đánh dấu bị hỏng và ngăn XSS, nhưng nó phải được thực hiện trong đúng ngữ cảnh và vào thời điểm xuất ra, chứ không phải được dựa vào như một phương thuốc chữa bách bệnh. Cuối cùng, đừng mã hóa những ký tự không cần thiết bên trong nội dung thông thường — mã hóa quá mức khiến mã nguồn khó đọc hơn và chẳng đem lại lợi ích gì khi tệp vốn đã là UTF-8.
Câu hỏi thường gặp
Thực thể HTML là gì và vì sao nên dùng chúng?
Bộ mã hóa chuyển đổi những ký tự nào?
Tôi có thể chuyển thực thể trở lại thành ký tự thường không?
Điều này có hữu ích để ngăn HTML bị hỏng hoặc XSS không?
Văn bản của tôi có được gửi đến máy chủ không?
Công cụ liên quan
Tiếp tục với những công cụ hữu ích này