【问题标题】:Prevent HTML Entity Conversion to Emoji防止 HTML 实体转换为表情符号
【发布时间】:2014-09-05 01:54:49
【问题描述】:

我编写了一封 HTML 电子邮件并使用“▶”在号召性用语中编码一个指向右侧的三角形来代替图像。除了在 iOS 设备中此 html 实体被转换为其表情符号对应物外,这将按预期呈现。我也尝试使用十六进制版本而不是十进制版本,但没有成功。

我找到了解决方案使用 php 的帖子,但由于这是一封 HTML 电子邮件,我无法使用 PHP。

有什么方法可以阻止 iOS 将 HTML 实体转换为对应的表情符号?

这是我正在使用的 html 实体:http://www.fileformat.info/info/unicode/char/25B6/index.htm

【问题讨论】:

  • 您所说的“对应的表情符号”是什么意思,您是如何确认发生了转化的?您确定您看到的不仅仅是黑色右指向三角形 U+25B6 的字形吗?你的 CSS 设置是什么(特别是字体设置)?
  • 问题是您使用的字体...(或者更确切地说是 iOS 电子邮件正在使用的字体)您必须找到一种方法将所述字体更改为不支持表情符号的字体(其中甚至可能都不可能,iOS 可能会覆盖所有字体以成为这些 un​​icode 字符的 Apple Color Emoji 字体......或者找到一个看起来像这样但代码不同的字符。
  • 我可以建议其中之一:►▸‣➤
  • 图片顶部是显示在 iOS 设备上的表情符号。图像的底部是 html 实体。 i28.photobucket.com/albums/c205/Josh_Blauvelt/… Font-family: Arial Rounded MT Bold,Nunito,Helvetica Rounded,Arial,Helvetica,sans-serif
  • @JukkaK.Korpela 我说的是表情符号对应物,因为它是相同的编码,但根据环境的不同显示不同。我使用 litmus 验证了转换,这是一个 html 电子邮件的测试平台。字体设置在 jsfiddle 中:jsfiddle.net/WebDevJoshB/5q4gP/1

标签: html unicode emoji


【解决方案1】:
▶︎

U+FE0F 和 U+FE0E 是“变体选择器”,分别表示首选类似表情符号(彩色/动画)或类似文本的渲染(如果可用)。如果两者都不使用,渲染器可以随意选择。不幸的是,iOS 在某些情况下默认使用表情符号变体,并且必须手动调整。

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

【讨论】:

  • 感谢您的建议。我试过了,但没有用:i28.photobucket.com/albums/c205/Josh_Blauvelt/… 这是 jsfiddle。它显示了指向右边的三角形:jsfiddle.net/WebDevJoshB/5q4gP/1
  • 其实我发现在 Safari Web 浏览器中查看邮件时这样可以,但在 iPhone 或 iPad 上查看时就不行了,这很奇怪。我将为那些支持它的 UA 尝试一些使用背景图像的技巧,看看效果如何。
  • 呃,iOS 内置电子邮件客户端是否存在特定错误?箭头下方的未知字符框是什么?
  • 我注意到这项技术现在可以在 iOS8.3 上的 Safari 中使用。
  • 对于 CSS :before:after 标签,您可以将 \FE0E 附加到您的内容中:` 声明。
猜你喜欢
  • 2014-07-21
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 2023-03-22
  • 2013-04-03
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
相关资源
最近更新 更多