&#x

形如——html

&#dddd;
&#xhhhh;
&#name;

——的一串字符是 HTML、XML 等 SGML 類語言的轉義序列(escape sequence)。它們不是「編碼」。html5

以 HTML 爲例,這三種轉義序列都稱做 character reference:java

  • 前兩種是 numeric character reference(NCR),數字取值爲目標字符的 Unicode code point;以「&#」開頭的後接十進制數字,以「&#x」開頭的後接十六進制數字。
  • 後一種是 character entity reference,後接預先定義的 entity 名稱,而 entity 聲明瞭自身指代的字符。

從 HTML 4 開始,NCR 以 Unicode 爲準,與文檔編碼無關。

「中國」二字分別是 Unicode 字符 U+4E2D 和 U+56FD,十六進制表示的 code point 數值「4E2D」和「56FD」就是十進制的「20013」和「22269」。因此——編碼

中国
中国

——這兩種 NCR 寫法都會在顯示時轉換爲「中國」二字。spa

NCR 能夠用於轉義任何 Unicode 字符,而 character entity reference 很受限,參見 HTML 4 和 HTML5 中已有定義的字符列表:.net

 

http://www.zhihu.com/question/21390312code

 

HtmlEncoder,中文轉換成&#開頭的編碼(及HTML特殊字符解碼)

相關文章
相關標籤/搜索