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 字符。請選擇具有名稱的實體 (&)、十進制 (&) 或 十六進制 (&)。運作方式
HTML 實體表示在標記中具有特殊含義的字元(< > & " ')或非 ASCII 字元,使用諸如 <、& 或 © 之類的序列。這樣瀏覽器就會將它們顯示為文字,而不是當作程式碼解釋。
有三種等價格式:命名(©)、十進位(©)和十六進位(©)。三者產生相同的字元;命名格式更易讀,但只對已知的字元集存在。
「基本」範圍只轉義會破壞 HTML 的字元(& < > " ');「全部」範圍還會轉義任何非 ASCII 字元。
範例
<a href="#"><a href="#">轉義可防止瀏覽器解釋這些標籤,並將其顯示為文字。5 < 10 & 3 > 15 < 10 & 3 > 1© 2024 · €© 2024 · €使用「全部」範圍和命名格式。十進位為 © 和 €;十六進位為 © 和 €。使用情境
- 在頁面上將 HTML 程式碼顯示為文字(範例、文件),而不被算繪。
- 在將使用者輸入插入 HTML 之前對其轉義以防止 XSS。
- 以在各種編碼間可移植的方式插入特殊符號(©、€、→、½)。
- 解碼從頁面原始碼複製的、包含實體的文字。
常見問題
哪種格式最好:命名、十進位還是十六進位?
命名格式(©)最易讀,但只涵蓋有定義名稱的字元。十進位(©)和十六進位(©)適用於任何 Unicode 字元,因此對於不常見的符號是安全選擇。
編碼實體能防止 XSS 攻擊嗎?
這是重要的一環,但轉義必須根據上下文(HTML 內容、屬性、JavaScript 或 URL)進行。不要只依賴單一層:也要使用框架的防護。
哪些字元必須始終轉義?
內容中的 & < >,以及屬性值內的 " 和 '。「基本」範圍恰好涵蓋這一組。
我的文字會傳送到伺服器嗎?
不會。編碼和解碼完全在你的瀏覽器中進行。