---
title: "HTML Unescape action for ActionClip"
canonical_url: "https://actionclip.app/actions/html-unescape"
document_type: "standalone_action"
official: true
action_count: 1
catalog_schema_version: 1
catalog_revision: "2026-08-21.1"
catalog_published_at: "2026-08-20T18:50:00Z"
---

# HTML Unescape action for ActionClip

Decode common named and numeric HTML entities.

## What it does

Decodes common typographic and currency entities plus decimal or hexadecimal Unicode references, while leaving unknown or invalid entities unchanged.

## Action details

| Field | Value |
| --- | --- |
| Category | Developer Tools |
| Action type | JavaScript |
| Result | Replace or copy text |
| Internet | Not required |

## Action and outcome

| Action | Outcome |
| --- | --- |
| **HTML Unescape** — Selected text: &lt;p&gt;Ready &amp; waiting &#x1F44B;&lt;/p&gt; | <p>Ready & waiting 👋</p> |

## How to decode common named and numeric HTML entities with ActionClip

1. Select the text you want to use.
2. Choose **HTML Unescape** from ActionClip.
3. Review the result, then replace the selection or copy the new text.

## Requirements

No setup required.

## Privacy

Runs locally in ActionClip’s JavaScript sandbox. Selected text does not leave your Mac.

## Action configuration

````javascript
function run(selected_text) {
  const named = {
    amp: "&", lt: "<", gt: ">", quot: '"', apos: "'", nbsp: "\u00A0",
    ndash: "–", mdash: "—", hellip: "…", copy: "©", reg: "®", trade: "™",
    euro: "€", pound: "£", yen: "¥", cent: "¢", laquo: "«", raquo: "»",
    lsquo: "‘", rsquo: "’", ldquo: "“", rdquo: "”", bull: "•", middot: "·",
    times: "×", divide: "÷"
  };

  return selected_text.replace(/&(#(?:x[0-9a-f]+|\d+)|[a-z][a-z0-9]+);/gi, (match, entity) => {
    if (entity[0] !== "#") return named[entity.toLowerCase()] ?? match;
    const isHex = entity[1].toLowerCase() === "x";
    const value = parseInt(entity.slice(isHex ? 2 : 1), isHex ? 16 : 10);
    if (!Number.isFinite(value) || value < 0 || value > 0x10FFFF || (value >= 0xD800 && value <= 0xDFFF)) {
      return match;
    }
    return String.fromCodePoint(value);
  });
}
````

## Links

- [HTML listing](https://actionclip.app/actions/html-unescape)
- [Download action definition](https://actionclip.app/actions/html-unescape.actionclip)
- [Browse Developer Tools actions](https://actionclip.app/marketplace#marketplace-developerTools)
- [All Marketplace listings](https://actionclip.app/marketplace)
