最近用 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 標點符號塊的字符代碼表。