DevToolPal
繁

HTML 實體編碼與解碼

把文字跳脫成 <、é 這類 HTML 實體,或把實體解碼回純文字。

本機處理,不會上傳

選項

模式

輸入

0 字元 · 0 B

輸出

0 字元 · 0 B

功能簡介

HTML 實體是代表字元的代碼,例如 &lt; 代表 <,&eacute; 代表 é。這個工具可以把文字跳脫成實體,讓它安全地顯示在網頁中;也能把實體解碼回純文字,例如從 CMS 或電子郵件範本中複製標記出來時。

編碼使用完整的 HTML5 清單,包含 2,000 多個具名參照;解碼能理解具名、十進位(&#169;)和十六進位(&#xA9;)參照,結果與瀏覽器完全一致。

使用方法

  1. 把文字或 HTML 貼到 輸入 框、上傳檔案,或點 範例。
  2. 選擇 編碼 或 解碼。
  3. 編碼時,選擇要編碼的範圍:
    • 僅 & < > ” ‘:把文字放進 HTML 或屬性所需的最少跳脫。
    • 再加非 ASCII,具名實體:也把 é、© 和 — 等字元轉成具名實體,沒有名稱的字元則轉成數字參照。
    • 再加非 ASCII,數字實體:同上,但一律使用數字形式(&#xe9;),這也是有效的 XML。
    • 所有有名稱的字元:連 . 和 / 這類標點符號也會編碼,適合會刪掉這些字元的系統。
  4. 複製或下載結果。按 作為輸入 可以再解碼一次,檢查來回轉換是否一致。

範例

<p>Café & "crème brûlée"</p>

只編碼特殊字元後會變成

&lt;p&gt;Café &amp; &quot;crème brûlée&quot;&lt;/p&gt;

加上非 ASCII 具名實體後會變成

&lt;p&gt;Caf&eacute; &amp; &quot;cr&egrave;me br&ucirc;l&eacute;e&quot;&lt;/p&gt;

常見用途

在部落格上展示程式碼片段而不讓瀏覽器把它算繪出來、把使用者的文字放進 HTML 電子郵件、修正 &amp;amp; 這類被重複跳脫的文字(解碼一次即可),或讓檔案能被只接受 ASCII 的系統安全處理。

常見問題

› HTML 中哪些字元必須跳脫?

在文字內容中要跳脫 & 和 <。在屬性值裡,還要跳脫包住該值的那種引號。在任何地方都跳脫 & < > " 和 '(這也是這裡的預設)永遠是安全的。

› 該用具名實體還是數字實體?

所有新式瀏覽器都支援兩者。&eacute; 這類具名實體比較好讀;&#xe9; 這類數字參照在 XML 和只認得少數名稱的舊解析器中也能用。如果頁面是 UTF-8,通常根本不需要編碼非 ASCII 字元。

› 解碼能處理沒有分號的實體嗎?

可以。解碼遵循 HTML 規格,因此像 &copy 這種沒有分號的舊寫法,會以瀏覽器的方式解碼。&foo; 這類未知的名稱則保持不變。

› 跳脫就足以防止 XSS 嗎?

對於放在 HTML 元素內和加了引號的屬性中的文字,跳脫是正確的防禦方式。但它無法讓不受信任的輸入在 script 區塊、style 區塊、事件處理屬性或 URL 中變得安全,這些地方需要針對情境的編碼。