&#x开头的是什么编码呢。浏览器可以解释它。如中国等同与中文"中国"?

抓取中出现的,一部分抓获的中文内容正常显示,其他的则变成了&#,如能解释这产生的原因更好。
关注者
126
被浏览
151,358
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

形如——

&name;
&#dddd;
&#xhhhh;

——的一串字符是 HTML、XML 等 SGML 类语言的转义序列(escape sequence)。它们不是「编码」。

以 HTML 为例,这三种转义序列都称作 character reference:

  • 第一种是 character entity reference,后接预先定义的 entity 名称,而 entity 声明了自身指代的字符。
  • 后两种是 numeric character reference(NCR),数字取值为目标字符的 Unicode code point;以「&#」开头的后接十进制数字,以「&#x」开头的后接十六进制数字。

从 HTML 4 开始,NCR 以 Unicode 为准,与文档编码无关。

「中国」二字分别是 Unicode 字符 U+4E2D 和 U+56FD,十六进制表示的 code point 数值「4E2D」和「56FD」就是十进制的「20013」和「22269」。所以——

中国
中国

——这两种 NCR 写法都会在显示时转换为「中国」二字。

NCR 可以用于转义任何 Unicode 字符,而 character entity reference 很受限,参见 HTML 4 和 HTML5 中已有定义的字符列表:

- - -

@xpoy

的答案错误百出。「格式(tag)」是什么?「二进制,也就是数字」?「还取决于当前网页表示的编码是什么」?「中国转化成gb2312的字节码是……utf8的……」?(那些是 GB 2312 和 UTF-8 字节流的「百分号编码」。)最后一部分完全胡言乱语。

基础概念很重要。