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