0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
設定
編碼和解碼 HTML 實體。基本 只編碼 5 個會打斷 HTML 的字符: & < > " '擴展 還會編碼所有非 ASCII 字符。請選擇具有名稱的實體 (&amp;)、十進制 (&#38;) 或 十六進制 (&#x26;)。
操作
範圍
格式
0

運作方式

HTML 實體表示在標記中具有特殊含義的字元(< > & " ')或非 ASCII 字元,使用諸如 &lt;、&amp; 或 &#169; 之類的序列。這樣瀏覽器就會將它們顯示為文字,而不是當作程式碼解釋。

有三種等價格式:命名(&copy;)、十進位(&#169;)和十六進位(&#xA9;)。三者產生相同的字元;命名格式更易讀,但只對已知的字元集存在。

「基本」範圍只轉義會破壞 HTML 的字元(& < > " ');「全部」範圍還會轉義任何非 ASCII 字元。

範例

<a href="#">&lt;a href=&quot;#&quot;&gt;轉義可防止瀏覽器解釋這些標籤,並將其顯示為文字。
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;使用「全部」範圍和命名格式。十進位為 &#169; 和 &#8364;;十六進位為 &#xA9; 和 &#x20AC;。

使用情境

  • 在頁面上將 HTML 程式碼顯示為文字(範例、文件),而不被算繪。
  • 在將使用者輸入插入 HTML 之前對其轉義以防止 XSS。
  • 以在各種編碼間可移植的方式插入特殊符號(©、€、→、½)。
  • 解碼從頁面原始碼複製的、包含實體的文字。

常見問題

哪種格式最好:命名、十進位還是十六進位?

命名格式(&copy;)最易讀,但只涵蓋有定義名稱的字元。十進位(&#169;)和十六進位(&#xA9;)適用於任何 Unicode 字元,因此對於不常見的符號是安全選擇。

編碼實體能防止 XSS 攻擊嗎?

這是重要的一環,但轉義必須根據上下文(HTML 內容、屬性、JavaScript 或 URL)進行。不要只依賴單一層:也要使用框架的防護。

哪些字元必須始終轉義?

內容中的 & < >,以及屬性值內的 " 和 '。「基本」範圍恰好涵蓋這一組。

我的文字會傳送到伺服器嗎?

不會。編碼和解碼完全在你的瀏覽器中進行。