我知道数据URI,其中base64编码数据可以内联使用,如图像.今天我收到的电子邮件实际上是垃圾邮件,其主题中有一个动画(gif)图标:

这是仅图标:

因此,我唯一想到的就是关于数据URI以及Gmail是否允许在主题中插入某种表情符号.我看到了电子邮件的完整详细版本,并在下图中指出了主题行:

所以GIF来自=?UTF-8?B?876Urg==?=编码字符串,类似于数据URI方案但是我无法从中获取图标.这是元素HTML源:

长话短说,有很多表情从https://mail.google.com/mail/e/XXX哪里XXX是十六进制数字.他们没有记录在案,或者我找不到它.如果这是关于数据URI,那么如何将它们包含在Gmail的电子邮件主题中呢?(我将该电子邮件转发到雅虎电子邮件帐户,[?]而不是图标),如果不是,那么该编码字符串是如何解析的?
我遇到了一个错误,我无法将两个看似“相同”的字符串匹配在一起。例如,以下两个字符串无法匹配:“sample”和“?sample”。
要复制该问题,可以在 Clojure 中运行以下命令。
(= "sample" "?sample") ; returns false
Run Code Online (Sandbox Code Playgroud)
经过一个小时的沮丧调试,我发现第二个字符串前面有一个零宽度的空间!通过退格从这个特定的例子中删除它是微不足道的。但是,我有一个匹配的字符串数据库,似乎有多个字符串面临这个问题。我的问题是:是否有一种通用的方法可以在 Clojure 中修剪零宽度空格?
我试过的一些方法:
(count (clojure.string/trim "?abc")) ; returns 4
Run Code Online (Sandbox Code Playgroud)
(count (clojure.string/replace "?abc" #"\s" "")) ; returns 4
Run Code Online (Sandbox Code Playgroud)
这个线程从 JavaScript 字符串中删除零宽度空格字符确实提供了一个在这个例子中工作的正则表达式解决方案,即
(count (clojure.string/replace "?abc" #"[\u200B-\u200D\uFEFF]" "")) ; returns 3
Run Code Online (Sandbox Code Playgroud)
但是,正如帖子本身所述,还有许多其他潜在的 ascii 字符可能是不可见的。所以我仍然很感兴趣,如果有一种更通用的方法不依赖于列出所有可能的不可见 unicode 符号。