HTML 實體編碼

在下方貼上HTML或文字並點擊編碼將特殊字元跳脫為HTML實體。所有處理均在瀏覽器中本地完成。

已複製!

什麼是 HTML 實體編碼?

HTML 實體編碼將特殊字元轉換為其 HTML 實體等效形式,以防止它們被解讀為 HTML 標記。例如:

  • <&lt;
  • >&gt;
  • &&amp;
  • "&quot;
  • '&#39;

這可以防止 XSS 攻擊並確保文字在 HTML 文件中正確顯示。

真正要緊的是範圍設定。只編碼會破壞 HTML 的字元,正文仍然好讀,凡是還要有人再編輯的內容都該這麼選。把 ASCII 以上的字元全部編碼,產出能扛過卡在單位元組字元集上的流程,代價是檔案大很多。當標題莫名其妙顯得不對時,值得跑一遍不可見字元選項:隨複製貼上混進來的不換行空格或零寬連接符,會變成你終於看得見的具名引用。

標記老是跟你作對?

被跳脫的實體、壞掉的編碼,以及在 CMS 裡是一個樣、在頁面上又是另一個樣的內容,通常說明流程中有一環在靠猜。我們做前端,也做它背後的發布鏈路,讓訪客看到的就是你寫下的。

聊聊你的網站

常見問題

什麼是 HTML 實體?
它是一種書寫字元的方式,好讓瀏覽器把它當文字讀,而不是當標記讀。&amp; 代表與號,&lt; 代表小於號,正是它擋住了一個亂入的角括號被當成標籤的開頭。
到底哪些字元必須編碼?
在一般內文裡,嚴格說來只有與號和小於號是必需的,大於號是約定俗成。在屬性裡還要加上收尾的那個引號。其餘都是選用的,所以這裡的預設設定正好只編碼這一組,其餘保持可讀。
用具名引用還是數字引用?
具名的更好讀,編輯檔案的人一眼就認得。數字的對所有字元都管用,包括大量根本沒有名字的字元,也從不依賴解析器認不認識某個名字。規範和大多數機器產生的輸出裡,你看到的是十六進位那種寫法。
為什麼要把 ASCII 以上的全部編碼?
因為鏈條裡有一環別的都靠不住:一份舊匯出、一個郵件範本、一個宣告這種字元集卻送那種字元集的系統。編碼 ASCII 以上的字元能讓檔案扛過去,代價是體積,而對還要有人再編輯的內容來說這是錯的選擇。
不可見字元選項能找出什麼?
不換行空格、零寬連接符、軟連字號,以及其他隨複製貼上混進來、然後毫無緣由地把版面弄亂的字元。打開它,這些會顯示成看得見的引用,通常這是找到那個惹事字元最快的辦法。