python中xa0是什么

Python014

python中xa0是什么,第1张

xa0是不间断空白

我们通常所用的空格是x20,是在标准ASCII可见字符0x20~0x7e范围内。

而xa0属于latin1(ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。

latin1字符集向下兼容ASCII(0x20~0x7e)。通常我们见到的字符多数是latin1的,比如在MySQL数据库中。

更多Python知识请关注Python视频教程栏目。

\xa0 表示不间断空白符,爬虫中遇到它的概率不可谓不小,而经常和它一同出现的还有 \u3000 、 \u2800 、 \t 等Unicode字符串。单从对 \xa0 、 \t 、 \u3000 等含空白字符的处理来说,有以下几种方法可行:

使用正则表达式可以轻松匹配所有空白字符,它对于Unicode字符也是有效的,比如:

不过该正则表达式会对所有字符都进行统一处理,可能会与原页面展示效果有所出入。

str 对象的 translate 方法也是去除这些字符串的好帮手,该方法具体用法可参考Python标准库,本处使用示例如下:

将字符串分割再重组,这时候空白字符就会被pass掉了,不过该方法杀伤力太大,会导致所有空白消失,一定要慎用。

使用示例:

Python标准库的 unicodedata 模块提供了 normalize 方法将Unicode字符转换为正常字符,该方法可算是处理这类情况最好的方法了,它会让字符回归到我们期望看到的样子,同时不损害其它正常的空白字符,而且还能还原其它非空白字符。 normalize 第一个参数指定字符串标准化的方式。 NFC 表示字符应该是整体组成(比如可能的话就使用单一编码),而 NFD 表示字符应该分解为多个组合字符表示。 Python 同样支持扩展的标准化形式 NFKC 和 NFKD ,它们在处理某些字符的时候增加了额外的兼容特性。使用该方法处理 \xa0 等字符的示例如下: