一般情况下,字体的值和显示的内容是一一对应的。不同的字体长得再怎么不一样,看上去都知道是同一个字。
但是,在某些情况下,为了防止被别人简单的复制文本就把内容给剽窃了,可能故意将字体的值和显示的内容设计的不一致。
比如,将我
显示为你
,是
显示为好
,傻
显示为吗
,X
显示为?
,正常看到的是一声问候你好吗?
,但剽窃者复制的是我是傻X
。
可以查看示例: https://ko.wo.sd/fonts.html
其实这种显示的还好,就怕那种暗搓搓的替换。以前看盗版小说的时候,偶尔会有一些常用字被换了,比如 圆 - 方,是 - 否,强 - 弱,有 - 无。
因为替换的字符少,字体文件不大,由于不在字符集里的字会fallback显示正常,平常的浏览访问加载速度基本不受影响。往往要好一阵子才会意识到这种反爬措施。
编辑字体,python可以使用fonttools
这个库。
字体混淆具体实现可以参考: solarhell/fontObfuscator