如何防止Unicode字符从JavaScript呈现为HTML中的表情符号?

我从FileFormat.Info的searchfindUnicode的特殊字符。

一些字符呈现为经典的黑白字形,如⚠(警告标志, \u26A0\u26A0 )。 这些都是可取的,因为我可以将CSS样式(如颜色)应用于它们。

警告标志符号的图像

其他人正在渲染为更新的卡通表情符号,如⌛(沙漏,< \u231B )。 这些都是不可取的,因为我不能完全塑造它们。

沙漏表情的图像

看来,浏览器正在做这个改变,因为我能够看到在Mac Firefox上的沙漏字形,只是不是Mac Chrome或Mac Safari。

有没有办法强制浏览器显示旧的(平坦的单调)版本来显示?

更新 :看起来(从下面的评论)有一个文本演示文稿select器 , FE0E ,可用于强制文本与表情符号。 select器连接为字符代码的无后缀空格后缀,例如用于HTMLhex的⌛&#xFE0E或用于JS的\u231B\uFE0E 。 但是, 它并不是所有浏览器 (例如,Chrome和Edge) 都不被尊重

我有办法阻止这种情况。 只需追加这段代码&#xFE0E; 字符之后,强制将其定义为TEXT而不是Emoji Symbol。

 <p>🔒&#xFE0E;</p> 

结果:🔒︎

#sourceA #sourceB

我有这样的一个Unicode字符span::before内容。 Chrome使用“Segoe UI Emoji”作为字体来渲染它。 即使当我将字体家族设置为“Segoe UI Symbol”时,它也不起作用。

但是 ,当我将字体系列明确地设置为“Segoe UI Symbol” span::before ,而不仅仅是span ,那么它的工作。

对于我在OSX上的解决scheme是将字体家族设置为EmojiSymbols

上述解决scheme都不适用于“Chrome浏览器的Emoji”扩展程序。

所以我做了一个Unicode字符'带检查的盒子'(U + 2611)的截图,并添加为图像与PHP:

  $ballotBoxWithCheck='<img src="pics/U2611.png" style="height:11px;margin-bottom:-1px">'; # &#9745; or /U2611 

在这里输入图像描述

请参阅: https : //spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel

我不知道一种方法来closures表情符号types呈现。 通常我使用图标字体,如字体真棒或glyphicons (自带3引导)。

使用unicode字符的好处是

  1. 你可以select多种不同的风格,以适应你的网站的devise;
  2. 它们在浏览器中是一致的(如果你曾经尝试过一个Unicode字符,你会注意到它在IE和其他浏览器中是不一样的)。
  3. 另外,它们是完全可风化的,就像你试图使用的unicode字符一样。

唯一的缺点是浏览器在浏览你的页面时需要下载一件东西。