如何防止Unicode字符从JavaScript呈现为HTML中的表情符号?
我从FileFormat.Info的searchfindUnicode的特殊字符。
一些字符呈现为经典的黑白字形,如⚠(警告标志, \u26A0
或\u26A0
⚠
)。 这些都是可取的,因为我可以将CSS样式(如颜色)应用于它们。
其他人正在渲染为更新的卡通表情符号,如⌛(沙漏,< \u231B
或⌛
)。 这些都是不可取的,因为我不能完全塑造它们。
看来,浏览器正在做这个改变,因为我能够看到在Mac Firefox上的沙漏字形,只是不是Mac Chrome或Mac Safari。
有没有办法强制浏览器显示旧的(平坦的单调)版本来显示?
更新 :看起来(从下面的评论)有一个文本演示文稿select器 , FE0E
,可用于强制文本与表情符号。 select器连接为字符代码的无后缀空格后缀,例如用于HTMLhex的⌛︎
或用于JS的\u231B\uFE0E
。 但是, 它并不是所有浏览器 (例如,Chrome和Edge) 都不被尊重 。
我有办法阻止这种情况。 只需追加这段代码︎
字符之后,强制将其定义为TEXT而不是Emoji Symbol。
<p>🔒︎</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">'; # ☑ or /U2611
请参阅: https : //spacetrace.org/man_card.php?tec_id=21&techname=multi-emp-vessel
我不知道一种方法来closures表情符号types呈现。 通常我使用图标字体,如字体真棒或glyphicons (自带3引导)。
使用unicode字符的好处是
- 你可以select多种不同的风格,以适应你的网站的devise;
- 它们在浏览器中是一致的(如果你曾经尝试过一个Unicode字符,你会注意到它在IE和其他浏览器中是不一样的)。
- 另外,它们是完全可风化的,就像你试图使用的unicode字符一样。
唯一的缺点是浏览器在浏览你的页面时需要下载一件东西。