HTML Escape Tool in JavaScript / Node.js — Code Examples
HTML escaping converts special characters like <, >, &, and " into their HTML entity equivalents (<, >, &, ") to prevent XSS attacks and ensure correct rendering. Here is how to escape and unescape HTML in each language.
In browsers, create a temporary DOM element to escape HTML reliably. In Node.js, use a library like he or escape manually.
// Escape using a temporary DOM element (most reliable in browsers)
function escapeHtml(str) {
const div = document.createElement("div");
div.appendChild(document.createTextNode(str));
return div.innerHTML;
}
function unescapeHtml(str) {
const div = document.createElement("div");
div.innerHTML = str;
return div.textContent ?? "";
}
const raw = '<script>alert("xss")</script> & "quotes"';
console.log(escapeHtml(raw));
// <script>alert("xss")</script> & "quotes"// npm install he
const he = require("he");
const raw = '<script>alert("xss")</script> & "quotes"';
// Escape
const escaped = he.encode(raw);
console.log(escaped);
// <script>alert("xss")</script> & "quotes"
// Unescape
const unescaped = he.decode("<b>Hello</b>");
console.log(unescaped); // <b>Hello</b>
// Minimal escaping (only the 5 critical chars)
const minimal = he.encode(raw, { useNamedReferences: true, allowUnsafeSymbols: false });- The DOM-based approach works for all HTML entities automatically, but requires a browser environment.
- For Node.js, the he library is the most complete HTML entity encoder/decoder.
- In React, Vue, and most modern frameworks, template content is auto-escaped — only use dangerouslySetInnerHTML / v-html for trusted content.
Need to html escape/unescape without writing code? The HTML Escape Tool runs entirely in your browser — paste your input and get the result instantly. No signup, no install, no data sent to a server.
Open HTML Escape/Unescape →HTML Escape Tool in Python
Python's standard library includes the html module with html.escape and html.unescape. No third-party packages needed.
HTML Escape Tool in Go
Go's html package provides EscapeString and UnescapeString. Both handle the five critical HTML characters.
HTML Escape Tool in Java
Java's standard library lacks an HTML escaping utility. Use Apache Commons Text (StringEscapeUtils) or Spring's HtmlUtils.
HTML Escape Tool in PHP
PHP provides htmlspecialchars for escaping the five critical characters and htmlentities for full entity encoding. Always pass ENT_QUOTES.
HTML Escape Tool in Ruby
Ruby's CGI module provides CGI.escapeHTML and CGI.unescapeHTML. Rails adds the h helper and auto-escapes ERB output by default.
HTML Escape Tool in Rust
The html-escape crate provides encode_text and decode_html_entities. For template rendering, askama and minijinja auto-escape by default.
HTML Escape Tool in C# / .NET
C# provides WebUtility.HtmlEncode in System.Net (all .NET targets) and HttpUtility.HtmlEncode in System.Web (ASP.NET only).