在这篇文章:隐写术:如何正确保护文章的版权?里面,我介绍了两个特殊数字:8204
和8205
。当我们使用chr
函数把他们转化成字符串以后,就能得到两个零宽字符。零宽字符肉眼不可见,也无法打印出来。
实际上,在整个 Unicode 字符集里面,这种不可见的字符还有很多。比如下面这句话:
See what's hidden in your string… or behind
如果在 Python 里面,使用repr
函数显示这个字符串真正的样子,那么可以看到里面实际上有哪些字符:
那么,现在问题来了。如果给你一个字符串,如何把里面所有的不可见字符全部移除呢?
由于不知道里面有哪些不可见字符,所以显然不可能通过穷举的方法一个一个移除。那么,我们应该怎么把他们全部移除呢?
这个时候,我们可以使用字符串的.isprintable()
方法。对于可见字符,这个方法返回 True
,对于不可见字符,它返回False
。例如:
于是,对于上面的字符串,我们可以通过这个方法,移除所有不可见字符,如下图所示:
请关注微信公众号【未闻Code】获取更多精彩文章。