我有一个字符串是:
>>> a = " "
>>> a.isspace()
False
>>> a
'\xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 \xe2\x80\x83\xe2\x80\x83 '
>>> print a
>>>
我们可以看到,当我打印字符串a时,全是空格。但是,使用 isspace() 无法检查它是否是一个充满空格的字符串。我怎样才能将这种字符串检测为“空格字符串”?
请您参考如下方法:
您没有只包含空白字符的字符串。您有一个 bytestring,其中包含仅包含空白字符的 Unicode 字符串的 UTF-8 编码。
解码 UTF-8 中的字节会生成一个 Unicode 字符串,该字符串为 isspace 报告 True:
>>> a.decode('utf-8').isspace()
True
但不要只是将 decode('utf-8') 临时添加到您的代码中并希望它能正常工作。
始终跟踪您使用的是 Unicode 还是字节串。通常,在 Unicode 中工作,立即将字节串输入转换为 Unicode,并且仅在它离开您的代码时才将 Unicode 转换为字节串。
