最近用 scrapy 爬某网站,发现拿到的内容里面含有 xa0 、 u3000 这样的字符,起初还以为是编码不对,搜了一下才知道是见识太少 233 。
xa0 是不间断空白符
我们通常所用的空格是 x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。
而 xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。
这里也有一张简陋的Latin1字符集对照表。
u3000 是全角的空白符
根据Unicode编码标准及其基本多语言面的定义, u3000 属于CJK字符的CJK标点符号区块内,是空白字符之一。它的名字是 Ideographic Space ,有人译作表意字空格、象形字空格等。顾名思义,就是全角的 CJK 空格。它跟 nbsp 不一样,是可以被换行间断的。常用于制造缩进, wiki 还说用于抬头,但没见过。
这里还有一个 Unicode.org 上关于 CJK 标点符号块的字符代码表。