起源于在 V2EX 上看到一篇文章,作者在最后附上用 Base64
编码的邮箱,虽然能够有效防止一般爬虫,但感觉不够优雅。在网上搜了一圈,发现可以把邮箱转为 HTML 字符实体
的方式达到类似目的,在网页上能够正常显示,但邮箱地址并不会直接出现在源码中。
HTML 字符实体
英文为 HTML Entities
,主要是表示预留字符和一些键盘无法输入的字符。在网上搜了一圈,发现没有能直接把字符转为 HTML 字符实体
的方法,预留字符倒是可以通过 html.unescape
来转换,但中英文字符就不行了。不过因为 HTML
使用的也是 Unicode 字符集
,所以我们可以通过把英文字符转为 Unicode
,然后再加上 &#
和 ;
来实现。
转换
首先是尝试把字符转为 Unicode
编码
拼接
然后把转换完成的 Unicode
拼接成 HTML 字符实体,即在 Unicode
前加上 &#
,Unicode
后加上 ;
这样,转换完成的便是 HTML 可以识别的字符实体,把它直接加进 Markdown,或者是以 HTML 的方式写入都可以。