HTML 實體編碼/解碼
免費線上 HTML Entity 編碼解碼:< > & 與 æ、© 等字元轉成具名(æ)、十進位或十六進位實體,附可搜尋的實體對照表。
把 < > & 這類 HTML 有特殊意義的符號轉成實體,或把 <、æ、æ 還原成文字;寫法可選具名、十進位或十六進位,連中文、é、æ 等非英文字元也能轉。只想查一個符號怎麼寫,下方有 252 個標準實體的對照表,搜尋後點一下就複製。全部在瀏覽器處理。
什麼時候需要 HTML 實體
- 顯示程式碼或符號:要在網頁上顯示「<b>」這幾個字本身,而不是讓瀏覽器把它當成粗體標籤,就要寫成 <b>。
- 防止被當成程式執行:把使用者輸入的內容放進網頁前先編碼,惡意的 <script> 就只會以文字顯示,不會被執行(這是防範 XSS 攻擊的基本做法)。
- 只收英文的系統:舊的 Email 範本、部分後台或資料庫欄位只接受英文字元,把中文與特殊字母轉成數字實體就能正常顯示。
- 打不出來的符號:鍵盤上沒有的 ©、→、æ,直接寫實體最保險,換電腦、換編碼也不會變成問號或亂碼。
三種寫法差在哪
同一段文字「<b>Café</b> & æ」,勾選「非英文字元也轉」後的三種編碼:
具名:有標準名稱的字元用名稱,好讀;沒有名稱的(例如中文)用十進位
<b>Café</b> & æ十進位:一律用數字,所有瀏覽器與 Email 程式都認得
<b>Café</b> & æ十六進位:數字跟 Unicode 碼位(U+00E6)寫法一致,工程師查表方便
<b>Café</b> & æ三種寫法瀏覽器顯示出來完全一樣,差別只在原始碼好不好讀。不勾「非英文字元也轉」時,只會換 & < > " ' / ` = 這 8 個保留字元。
單引號在 HTML 4 沒有標準名稱(' 是 HTML5 才加的,舊的 Email 程式不一定認得),所以具名寫法下仍用 '。
常用實體速查
| 字元 | 具名 | 數字 | 用途 |
|---|---|---|---|
| (空白) | |   | 不換行空白(排版時讓兩個字不被拆開) |
| © | © | © | 著作權符號 |
| ® | ® | ® | 註冊商標 |
| ™ | ™ | ™ | 商標 |
| æ | æ | æ | æ,丹麥文、挪威文、古英文的字母 |
| é | é | é | é,法文等的重音字母 |
| … | … | … | 刪節號(英文的三個點) |
| — | — | — | 長破折號 |
| · | · | · | 間隔號,常用在外國人名中間 |
| × | × | × | 乘號 |
| ° | ° | ° | 度 |
| € | € | € | 歐元 |
| → | → | → | 右箭頭 |
| ♥ | ♥ | ♥ | 愛心 |
完整的 252 個 HTML 4 標準實體在工具下方的對照表,可以用英文名稱、字元本身或數字搜尋。
跟其他編碼別搞混
| 編碼 | 寫法 | 用在哪裡 |
|---|---|---|
| HTML 實體 | 中(或 中) | 網頁原始碼、Email 範本 |
| URL 編碼 | %E4%B8%AD | 網址的參數 |
| JavaScript/JSON 跳脫 | \u4E2D | 程式碼裡的字串 |
三種都是在「只能用英文字元的地方」表示中文,但各有各的場合,混用會變成亂碼;網址要用 URL 編碼工具、JSON 用 JSON 格式化工具的跳脫功能。
解碼與換行
解碼交給瀏覽器處理,HTML 4 與 HTML5 的所有具名實體(包含 æ、©、 )和數字實體(æ、æ)都能還原成文字。按過一次編碼或解碼後,再改輸入或選項,結果會自動更新。
勾選「換行轉成 <br>」,每個換行會變成 <br>,貼進只吃 HTML 的欄位(例如部分電子報、論壇的 HTML 模式)時段落不會黏在一起。
HTML 實體編碼/解碼功能特點
- & < > " ' / ` = 轉成 HTML 實體
- 寫法可選具名(æ)、十進位(æ)或十六進位(æ)
- 可選:中文、é、æ 等非英文字元也轉
- 可選:換行轉成 <br>
- 解碼所有標準命名實體與數字實體
- HTML 4 標準 252 個具名實體對照表:用名稱、字元或數字搜尋,點一下複製
- 一鍵複製結果
- 在瀏覽器處理,不上傳
如何使用HTML 實體編碼/解碼?
- 貼上要轉換的文字或 HTML
- 選寫法(具名、十進位、十六進位),需要時勾選非英文字元也轉、換行轉 <br>
- 按「編碼」或「解碼」(之後改輸入會自動更新)
- 按「複製結果」;只想查一個字元,直接用下方對照表搜尋
HTML 實體編碼/解碼常見問題
為什麼需要 HTML 實體編碼?
主要有兩個原因:1) 防止使用者輸入的內容被當成 HTML 執行(XSS 攻擊);2) 在網頁上正確顯示 <、>、& 等會被瀏覽器當成標籤的字元。
什麼是 HTML 實體?
HTML 實體是用特殊寫法表示字元,例如 < 代表 <、& 代表 &;也可以用數字表示任何字元,例如 æ 代表 æ、中 代表「中」。
編碼會把哪些字元換掉?
預設只換 HTML 保留字元:& < > " ' / ` = 。勾選「中文、é、æ 等非英文字元也轉」後,碼位大於 127 的字元也會換掉:選「具名」時有標準名稱的用名稱(æ → æ、© → ©),沒有名稱的(例如中文)用十進位數字;也可以一律用十進位或十六進位。適合放進只接受 ASCII 的系統或信件範本。
解碼支援哪些實體?
交給瀏覽器解析,所有標準命名實體(æ、©、 等)與數字實體(æ、æ)都能還原成文字。
æ 的 HTML 實體怎麼寫?
具名寫法是 æ,數字寫法是 æ 或 æ,大寫 Æ 是 Æ。直接在下方對照表搜尋 aelig 或貼上 æ,點一下就能複製。
網頁上直接顯示 & 或 < 這種字是怎麼回事?
那是被編碼了兩次:原本的 < 先變成 <,又被當成文字再編碼一次變成 &lt;,瀏覽器只解一層,畫面上就看到 <。把那段原始碼貼進來按「解碼」一次會變回 <,把結果複製、再貼回輸入框解碼一次,才是原本的符號;根本的修法是找出系統裡重複編碼的那一步,只編碼一次。
和一般空白有什麼不同?
一般空白在網頁上連續打好幾個只會顯示一個,行尾也可能被拿來換行; (不換行空白)不會被合併,也不會在那裡斷行,常用來讓「10 公里」這種數字與單位不被拆到兩行。