HTML 實體編碼/解碼

免費線上 HTML Entity 編碼解碼:< > & 與 æ、© 等字元轉成具名(&aelig;)、十進位或十六進位實體,附可搜尋的實體對照表。

立即使用HTML 實體編碼/解碼(免費、免註冊)

把 < > & 這類 HTML 有特殊意義的符號轉成實體,或把 &lt;、&aelig;、&#230; 還原成文字;寫法可選具名、十進位或十六進位,連中文、é、æ 等非英文字元也能轉。只想查一個符號怎麼寫,下方有 252 個標準實體的對照表,搜尋後點一下就複製。全部在瀏覽器處理。

什麼時候需要 HTML 實體

  • 顯示程式碼或符號:要在網頁上顯示「<b>」這幾個字本身,而不是讓瀏覽器把它當成粗體標籤,就要寫成 &lt;b&gt;。
  • 防止被當成程式執行:把使用者輸入的內容放進網頁前先編碼,惡意的 <script> 就只會以文字顯示,不會被執行(這是防範 XSS 攻擊的基本做法)。
  • 只收英文的系統:舊的 Email 範本、部分後台或資料庫欄位只接受英文字元,把中文與特殊字母轉成數字實體就能正常顯示。
  • 打不出來的符號:鍵盤上沒有的 ©、→、æ,直接寫實體最保險,換電腦、換編碼也不會變成問號或亂碼。

三種寫法差在哪

同一段文字「<b>Café</b> & æ」,勾選「非英文字元也轉」後的三種編碼:

具名:有標準名稱的字元用名稱,好讀;沒有名稱的(例如中文)用十進位

&lt;b&gt;Caf&eacute;&lt;&#x2F;b&gt; &amp; &aelig;

十進位:一律用數字,所有瀏覽器與 Email 程式都認得

&#60;b&#62;Caf&#233;&#60;&#47;b&#62; &#38; &#230;

十六進位:數字跟 Unicode 碼位(U+00E6)寫法一致,工程師查表方便

&#x3C;b&#x3E;Caf&#xE9;&#x3C;&#x2F;b&#x3E; &#x26; &#xE6;

三種寫法瀏覽器顯示出來完全一樣,差別只在原始碼好不好讀。不勾「非英文字元也轉」時,只會換 & < > " ' / ` = 這 8 個保留字元。

單引號在 HTML 4 沒有標準名稱(&apos; 是 HTML5 才加的,舊的 Email 程式不一定認得),所以具名寫法下仍用 &#39;。

常用實體速查

最常被查的符號
字元具名數字用途
(空白)&nbsp;&#160;不換行空白(排版時讓兩個字不被拆開)
©&copy;&#169;著作權符號
®&reg;&#174;註冊商標
™&trade;&#8482;商標
æ&aelig;&#230;æ,丹麥文、挪威文、古英文的字母
é&eacute;&#233;é,法文等的重音字母
…&hellip;&#8230;刪節號(英文的三個點)
—&mdash;&#8212;長破折號
·&middot;&#183;間隔號,常用在外國人名中間
×&times;&#215;乘號
°&deg;&#176;度
€&euro;&#8364;歐元
→&rarr;&#8594;右箭頭
♥&hearts;&#9829;愛心

完整的 252 個 HTML 4 標準實體在工具下方的對照表,可以用英文名稱、字元本身或數字搜尋。

跟其他編碼別搞混

「中」這個字的幾種寫法
編碼寫法用在哪裡
HTML 實體&#20013;(或 &#x4E2D;)網頁原始碼、Email 範本
URL 編碼%E4%B8%AD網址的參數
JavaScript/JSON 跳脫\u4E2D程式碼裡的字串

三種都是在「只能用英文字元的地方」表示中文,但各有各的場合,混用會變成亂碼;網址要用 URL 編碼工具、JSON 用 JSON 格式化工具的跳脫功能。

解碼與換行

解碼交給瀏覽器處理,HTML 4 與 HTML5 的所有具名實體(包含 &aelig;、&copy;、&nbsp;)和數字實體(&#230;、&#xE6;)都能還原成文字。按過一次編碼或解碼後,再改輸入或選項,結果會自動更新。

勾選「換行轉成 <br>」,每個換行會變成 <br>,貼進只吃 HTML 的欄位(例如部分電子報、論壇的 HTML 模式)時段落不會黏在一起。

HTML 實體編碼/解碼功能特點

  • & < > " ' / ` = 轉成 HTML 實體
  • 寫法可選具名(&aelig;)、十進位(&#230;)或十六進位(&#xE6;)
  • 可選:中文、é、æ 等非英文字元也轉
  • 可選:換行轉成 <br>
  • 解碼所有標準命名實體與數字實體
  • HTML 4 標準 252 個具名實體對照表:用名稱、字元或數字搜尋,點一下複製
  • 一鍵複製結果
  • 在瀏覽器處理,不上傳

如何使用HTML 實體編碼/解碼?

  1. 貼上要轉換的文字或 HTML
  2. 選寫法(具名、十進位、十六進位),需要時勾選非英文字元也轉、換行轉 <br>
  3. 按「編碼」或「解碼」(之後改輸入會自動更新)
  4. 按「複製結果」;只想查一個字元,直接用下方對照表搜尋

HTML 實體編碼/解碼常見問題

為什麼需要 HTML 實體編碼?

主要有兩個原因:1) 防止使用者輸入的內容被當成 HTML 執行(XSS 攻擊);2) 在網頁上正確顯示 <、>、& 等會被瀏覽器當成標籤的字元。

什麼是 HTML 實體?

HTML 實體是用特殊寫法表示字元,例如 &lt; 代表 <、&amp; 代表 &;也可以用數字表示任何字元,例如 &#230; 代表 æ、&#20013; 代表「中」。

編碼會把哪些字元換掉?

預設只換 HTML 保留字元:& < > " ' / ` = 。勾選「中文、é、æ 等非英文字元也轉」後,碼位大於 127 的字元也會換掉:選「具名」時有標準名稱的用名稱(æ → &aelig;、© → &copy;),沒有名稱的(例如中文)用十進位數字;也可以一律用十進位或十六進位。適合放進只接受 ASCII 的系統或信件範本。

解碼支援哪些實體?

交給瀏覽器解析,所有標準命名實體(&aelig;、&copy;、&nbsp; 等)與數字實體(&#230;、&#xE6;)都能還原成文字。

æ 的 HTML 實體怎麼寫?

具名寫法是 &aelig;,數字寫法是 &#230; 或 &#xE6;,大寫 Æ 是 &AElig;。直接在下方對照表搜尋 aelig 或貼上 æ,點一下就能複製。

網頁上直接顯示 &amp; 或 &lt; 這種字是怎麼回事?

那是被編碼了兩次:原本的 < 先變成 &lt;,又被當成文字再編碼一次變成 &amp;lt;,瀏覽器只解一層,畫面上就看到 &lt;。把那段原始碼貼進來按「解碼」一次會變回 &lt;,把結果複製、再貼回輸入框解碼一次,才是原本的符號;根本的修法是找出系統裡重複編碼的那一步,只編碼一次。

&nbsp; 和一般空白有什麼不同?

一般空白在網頁上連續打好幾個只會顯示一個,行尾也可能被拿來換行;&nbsp;(不換行空白)不會被合併,也不會在那裡斷行,常用來讓「10 公里」這種數字與單位不被拆到兩行。