一日一技:如何移除所有不可見字符?
在這篇文章:隱寫術:如何正確保護文章的版權?里面,我介紹了兩個特殊數字:8204和8205。當我們使用chr函數把他們轉化成字符串以后,就能得到兩個零寬字符。零寬字符肉眼不可見,也無法打印出來。
實際上,在整個 Unicode 字符集里面,這種不可見的字符還有很多。比如下面這句話:
- See what's hidden in your string… or behind
如果在 Python 里面,使用repr函數顯示這個字符串真正的樣子,那么可以看到里面實際上有哪些字符:
那么,現在問題來了。如果給你一個字符串,如何把里面所有的不可見字符全部移除呢?
由于不知道里面有哪些不可見字符,所以顯然不可能通過窮舉的方法一個一個移除。那么,我們應該怎么把他們全部移除呢?
這個時候,我們可以使用字符串的.isprintable()方法。對于可見字符,這個方法返回 True,對于不可見字符,它返回False。例如:
于是,對于上面的字符串,我們可以通過這個方法,移除所有不可見字符,如下圖所示:
本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。