HTML Entity 簡介

HTML Entity 是什麼

HTML Entity 是一段字符串組成的文本,以 “&” 符號開頭,以 “;” 結尾,

誕生原因

一些字符在 HTML 中是預留的,擁有特殊的含義,比如小於號 < 用於定義 HTML 標籤的開始。如果我們希望瀏覽器正確地顯示這些字符,我們必須在 HTML 源碼中插入字符實體。

用途

  1. 顯示 HTML 保留字符,如 <、>、&、 " 等(聯想到防禦 XSS 攻擊);
  2. 表示難以用常規輸入設備輸入的字符,如 ©、®、± 等;
  3. 表示給定的字符編碼可能無法表達文檔字符集的其他字符,如 ASCII 編碼想想顯示中文,使用 &#x6C34; 表示 “水”;

表示形式

數字字符引用

數字字符引用指定文檔字符集中字符的代碼位置。數字字符引用又可以採用兩種形式:

  1. 語法&#d,其中,d 是十進制數,表示字符在 ISO 10646 以十進制表示的位置中 d 處的字符。
  2. 語法&#xH,其中,x 表示後續內容爲十進制數,H 表示字符在 ISO 10646 以十六進制表示的位置中 H 處的字符,數字字符引用中的十六進制數字不區分大小寫。

字符實體引用

由於使用數字字符引用還需要記住字符在字符集中位置,使用較爲不便,因此 HTML 還提供了“字符實體引用”的方式表示字符,如用 &lt;(less than) 表示 < ,此形式更易讀易記,但 HTML 顯然沒有爲ISO 10646 中的數十萬個字符都定義了字符實體,完整列表見Named character references,字符實體引用對大小寫敏感。

擴展

ASCII、 Unicode、UTF-8、HTML Entities 的關係

&nbsp;

定義: 不換行空格(no-break space)是空格字符,用途是禁止自動換行。HTML頁面顯示時會自動合併多個連續的空白字符(whitespace character),但該字符是禁止合併的,因此該字符也稱作“硬空格”。
寬度: 單個寬度與 space 的空格一致,受字體影響,不同瀏覽器下表現也不一致,在 chrome 的 PingFang SC 字體下佔 1.3em

在 html 中輸入多個空格

除使用 &nbsp; 外,還可通過設置內容 css 的 white-space 屬性值爲 pre,如此瀏覽器會保留文本中的空格和換行,就可以在文本中直接使用鍵盤的 space 輸入多個空格了。

其他空格

  • &ensp; 全稱爲半角空格(En Space),寬度爲1/2em
  • &emsp; 全稱爲全角空格(Em Space),寬度爲1em
  • &thinsp; 全稱爲窄空格(Thin Space),寬度爲1/5em,此三者寬度幾乎不受字體影響。
  • &zwnj; 全稱爲零寬不連字符(Zero Width Non Joiner),顧名思義沒有寬度,用於抑制本來會發生的連字。
  • &zwj; 全稱爲零寬連字符(Zero Width Joiner),沒有寬度,用於在兩個本不會發生連字的字符產生連字效果。

參考文獻

  1. charset-w3
  2. Entity-MDN
  3. charref-w3
  4. 字符編碼筆記:ASCII,Unicode 和 UTF-8
  5. 零寬度字符:和諧?屏蔽?不存在的
  6. HTML 幾種空格的區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章