防止HTML实体转换为表情符号

20
我已编写了一封HTML电子邮件,使用"▶"来代替调用动作中的图像以呈现向右指向的三角形。这种方法在预期中是有效的,但在iOS设备上,此html实体将转换为其表情符号对应项。我还尝试过使用十六进制版本而不是十进制版本,但没有成功。
我找到了一些使用PHP解决方案的帖子,但由于这是一个HTML电子邮件,所以我无法使用PHP。
有什么方法可以防止iOS将HTML实体转换为其表情符号对应项吗?
这是我正在使用的HTML实体:http://www.fileformat.info/info/unicode/char/25B6/index.htm

“它的表情符号对应物”是什么意思?你如何验证转换是否已经发生?你确定你看到的不仅仅是BLACK RIGHT-POINTING TRIANGLE U+25B6的字形吗?你的CSS设置是什么(具体来说,字体设置)? - Jukka K. Korpela
问题出在你使用的字体上...(或者更确切地说是 iOS 邮件所使用的字体)你必须要找到一种方法来将该字体更改为不支持表情符号的字体(这可能甚至是不可能的,因为 iOS 可能会覆盖所有字体以成为 Apple Color Emoji 字体,用于那些 Unicode 字符... 或者找到一个看起来像那个字符但是是不同代码的字符。 - Albert Renshaw
我可以建议其中之一:►▸‣➤ - Albert Renshaw
图片顶部是在iOS设备上显示的表情符号。图片底部是HTML实体。 字体系列: Arial Rounded MT Bold,Nunito,Helvetica Rounded,Arial,Helvetica,sans-serif - josh1978
1
@JukkaK.Korpela 我提到了表情符号的对应项,因为它们具有相同的编码,但在不同的环境下显示不同。我使用 litmus 进行验证转换是否已经完成,litmus 是一个用于测试 HTML 电子邮件的平台。字体设置在 jsfiddle 中:http://jsfiddle.net/WebDevJoshB/5q4gP/1/。 - josh1978
我已从标题中删除了iOS和HTML电子邮件标签和参考,因为对于这个问题的答案要比那些具体的实现更广泛。 - James Donnelly
1个回答

27
▶︎

U+FE0F和U+FE0E是“变量选择器”,分别表示首选类似于表情符号的(彩色/动画)或文本样式呈现,如果可用的话。如果没有使用任何一种,则呈现器可以随意选择。不幸的是,iOS在某些情况下默认为表情符号变体,必须手动更正。

(十六进制与十进制字符引用无关紧要。您也可以包含原始字符,不一定要将它们编码为字符或实体引用,但是作为原始字符,在编辑器中很难看到变量选择器的存在。)


谢谢您的建议。我尝试了一下,但没有成功: http://i28.photobucket.com/albums/c205/Josh_Blauvelt/character2_zps94b4d897.gif这是 jsfiddle 的链接。它显示了向右的三角形:http://jsfiddle.net/WebDevJoshB/5q4gP/1/ - josh1978
抱歉@bobince,让您久等了。我使用了在您的响应中列出的▶︎。白色轮廓框出现在第二个实体 - &#xFE0E。当我删除它时,第一个实体&#x25B6将呈现为白色箭头,但在iPhone 4、5、5s、iPad/iPad mini/iPad retina上显示为表情符号,在Outlook.com上的Chrome/IE11/Firefox(所有都是PC)上呈现为黑色箭头。这是基于Litmus的测试结果,所以需要谨慎对待。我选择使用内联图像,在所有电子邮件客户端/设备上都能正常工作。 - josh1978
1
我注意到这种技术现在在iOS8.3的Safari上确实有效。 - leptinella
1
对于 CSS 中的 :before:after 标签,您可以在内容声明中添加 \FE0E - cronoklee
更新:此方法适用于所有iOS设备,但现在不适用于gmail.com。在PC上,gmail默认使用Roboto字体,而该字体中不存在文本字符。使用DevTools,它将&#xFE0E;&#x25B6;转换为<img data-emoji="▶" class="an1" alt="▶" aria-label="▶" src="https://fonts.gstatic.com/s/e/notoemoji/14.0/25b6/32.png" loading="lazy">。我无法使用内部CSS来定位它;gmail会在所有我的类名前面添加无意义的字符(例如[class~=an1]变成了[class~=m_3369303004283410109an1])。这是gmail支持的唯一CSS属性选择器。 - josh1978
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接