我目前正在使用Qt开发一个应用程序。我正在使用macOS Sierra作为我的开发和测试环境,但该应用程序是跨平台的。
所以这就是问题所在。我正在创建一个Qt Quick Text
项,我在其中设置了以下属性text: "\u2139"
,以便显示information icon。我使用的字体系列是Open Sans。
运行应用程序后,我很惊讶在我的unicode角色应该来的地方看到以下内容:
这不是我想要的,我想要那个unicode角色的文字演示,而不是表情符号演示。如何强制显示文本演示文稿(在所有平台上)?
感谢。
答案 0 :(得分:0)
根据Wikipedia你应该通过U + EF0E {VARIATION SELECTOR 15}跟随该字符,它要求rending系统以文本(单铬)形式呈现前面的字形;要做相反的事情,即要求表情符号(彩色)表示,你应该通过U + EF0F {VARIATION SELECTOR 16}代码点来跟随它。特别是对于后者,无论你是否能够获得丰富多彩的形式都是高度系统/显示小部件选择性的,如果没有指定,哪个代码点以哪种方式呈现并不明显。例如这三个字形:
︎️没有变异选择器
︎︎︎️︎每个跟随VS15
️︎️️️各跟随VS16
<强> Aaarg!它们完全不能在Stack Exchange上以不同方式显示 GRRRR!
然而,将其保存为使用HTML实体的html文件并在浏览器中打开它:
<html><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><head/>
<body><p>😐😞😀 without a variation selector</p>
<p>😐︎😞︎😀︎ each followed by VS15</p>
<p>😐️😞️😀️ each followed by VS16</p>
</body></html>
只有在被告知时才会产生表情符号效果:
从我最近关于使用Qt C ++小部件的项目的工作来看,似乎大多数(我已经尝试过)它们都没有处理表情符号形式 - 尽管我没有尝试QTextBrowser
这似乎是最有可能处理这些问题 - 它只是不适用于我正在做的事情......
同样,102人类Emojis的表情符号形式也可以与另外五个U + 1F3FB组合到U + 1F3FF {EMOJI MODIFIER FITZPATRICK TYPE-xxxx}(第一个用于类型1和2,其余的分别是3到6个),给予它们逼真且越来越暗的肤色。请注意,基线人类表情符号的默认黄色/蓝色/灰色基色显然是那些不类似人类皮肤色调的颜色!
答案 1 :(得分:0)
指定font-family: Helvetica, Arial;
将覆盖操作系统的表情符号默认值。