HTML Entity Decoder

Decode HTML entities back to their original characters.

0 characters

What is HTML Entity Decoding?

HTML entity decoding converts HTML entities (like <, >, &) back to their original characters. This is useful when you need to convert encoded HTML back to readable text or actual HTML code.

Common Uses of HTML Entity Decoding

  • Web Scraping and Data Extraction: When scraping web pages or parsing HTML documents, extracted text sometimes contains HTML entities. Decode these entities to get clean, readable text for analysis, search indexing, or storage. For example, scraping a product description that contains "5" screen" should decode to "5" screen".
  • API Response Processing: Some APIs return HTML-entity-encoded data in JSON or XML responses. When consuming these APIs, decode the encoded strings to get usable text. For example, an API might return {"title": "Q&A Session"}, which needs decoding to "Q&A Session" for display or further processing.
  • Content Migration and Data Import: When migrating content between systems (moving from WordPress to another CMS, importing blog posts from XML, converting legacy databases), content is often stored with HTML entities. Decoding these entities to plain text or properly formatted HTML is necessary for the migration. For example, blog titles stored as "How to Use &lt;div&gt; Tags" need decoding to "How to Use <div> Tags" for display or search indexing.
  • seo.html_decode.use_debugging seo.html_decode.use_debugging_desc
seo.html_decode.heading_how

seo.html_decode.how_desc

  • seo.html_decode.how_step1
  • seo.html_decode.how_step2
  • seo.html_decode.how_step3
  • seo.html_decode.how_step4

seo.html_decode.how_example

Understanding HTML Entity Decoding

HTML entity decoding interprets both named entities (< > &) and numeric entities (< > & in decimal, < > & in hexadecimal). The decoder recognizes entity patterns (& followed by entity name or number, terminated by ;), looks up the corresponding character in the HTML entity table, and replaces the entity with the actual character. Named entities are defined by HTML specifications (over 2,000 entities including mathematical symbols, Greek letters, and special characters). Numeric entities can represent any Unicode character by code point.

Security Warnings for HTML Decoding

HTML decoding converts entities back to special characters. Never decode and display untrusted content without re-encoding it first, as this can enable XSS attacks. Learn about encoding security

HTML Entity Decoding in Programming Languages

HTML entity decoding is available in all major programming languages. Here are comprehensive examples:

// html_entity_decode() - standard decoding
$decoded = html_entity_decode($encoded, ENT_QUOTES, 'UTF-8');
// Decodes: &lt; &gt; &amp; &quot; &#39; and all HTML entities

// htmlspecialchars_decode() - decodes only basic entities
$decoded = htmlspecialchars_decode($encoded, ENT_QUOTES);
// Decodes: &lt; &gt; &amp; &quot; &#39; only

// Example: Processing API response
$apiData = json_decode($response, true);
$title = html_entity_decode($apiData['title'], ENT_QUOTES, 'UTF-8');
// Safe decoding using DOMParser
function htmlDecode(str) {
    const parser = new DOMParser();
    const doc = parser.parseFromString(str, 'text/html');
    return doc.documentElement.textContent;
}

// Using textarea element (alternative)
function htmlDecode(str) {
    const textarea = document.createElement('textarea');
    textarea.innerHTML = str;
    return textarea.value;
}

// WARNING: Never use innerHTML with untrusted data
// element.innerHTML = encoded; // DANGEROUS if untrusted
import html

# html.unescape() - decodes all HTML entities
decoded = html.unescape(encoded)
# Decodes: &lt; &gt; &amp; &#60; &#x3C; etc.

# Example: Processing API response
import json
data = json.loads(response)
title = html.unescape(data['title'])

# BeautifulSoup (for HTML parsing with auto-decode)
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'html.parser')
text = soup.get_text()  # Automatically decodes entities
import "html"

// html.UnescapeString() - decodes HTML entities
decoded := html.UnescapeString(encoded)
// Decodes: &lt; &gt; &amp; &quot; &#39; etc.

// Example: Processing XML feed
type RSSItem struct {
    Title       string `xml:"title"`
    Description string `xml:"description"`
}
// Decode after parsing
item.Title = html.UnescapeString(item.Title)
// Apache Commons Text (recommended)
import org.apache.commons.text.StringEscapeUtils;
String decoded = StringEscapeUtils.unescapeHtml4(encoded);
// Decodes all HTML4 entities

// Example: Processing API response
import com.google.gson.Gson;
ApiResponse response = gson.fromJson(json, ApiResponse.class);
String decodedTitle = StringEscapeUtils.unescapeHtml4(response.getTitle());

// Jsoup (for HTML parsing with auto-decode)
import org.jsoup.Jsoup;
String decoded = Jsoup.parse(encoded).text();
require 'cgi'

# CGI.unescapeHTML() - decodes HTML entities
decoded = CGI.unescapeHTML(encoded)
# Decodes: &lt; &gt; &amp; &quot; etc.

# Nokogiri (for HTML parsing with auto-decode)
require 'nokogiri'
doc = Nokogiri::HTML(html_content)
text = doc.text  # Automatically decodes entities

# Example: Processing RSS feed
require 'rss'
rss = RSS::Parser.parse(feed_content)
rss.items.each do |item|
  title = CGI.unescapeHTML(item.title)
end
using System.Web;
using System.Net;

// HttpUtility.HtmlDecode() - decodes HTML entities
string decoded = HttpUtility.HtmlDecode(encoded);
// Decodes all HTML entities

// WebUtility (no System.Web dependency)
string decoded = WebUtility.HtmlDecode(encoded);

// Example: Processing API response
var jsonData = JsonConvert.DeserializeObject<ApiResponse>(json);
string decodedTitle = HttpUtility.HtmlDecode(jsonData.Title);

Related Tools

Need to encode text to HTML entities? Use our HTML Entity Encoder to convert < > & to < > & for safe display.

Decoding URL-encoded strings? Try our URL Decoder to convert %XX sequences back to characters.

Decoding Base64 data? Use our Base64 Decoder to convert Base64 strings to original text or binary.