\xa0
是不间断空白符
我们通常所用的空格是 \x20
,是在标准ASCII可见字符 0x20~0x7e 范围内。
而 \xa0
属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。
latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。
inputstring = u'\n Door:\xa0Novum \t '
move = dict.fromkeys((ord(c) for c in u"\xa0\n\t"))
output = inputstring.translate(move)
s = u'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0'
res = "".join(s.split())
ord()函数是chr()函数(对于8位的ASCII字符串)或unichr()函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常。
dict中的fromkeys方法目的是创建一个只有key的字典,内部利用for循环,使三个字符的asii码值成为可迭代对象(本来的整数是不可迭代的),分别对其迭代,存入字典。
Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。接收到move返回的表(字典),之后对字符串进行替换。
split不带参数时,表示分割所有换行符、制表符、空格。分割后使用join合并所有切片