VSCode中的表情符号

4

我正在尝试在Dart中编辑以下表情符号数组,我尝试了VSCode中的表情符号扩展程序,但没有一个可以用于这行代码。

const _emojis = ['','','','',''];

1个回答

2
Dart Strings似乎是UTF-16序列。 因此,请查找这些表情符号的UTF序列,并按照该链接中的描述使用它们。
最简单和朴素的情况是Unicode代码点:
const _emojis = ['\u{1f605}','\u{1f606}','\u{1f607}','\u{1f608}','\u{1f609}'];

for (var i = 0;i<_emojis.length;i++) {
   print("Position $i : ${_emojis[i]} ");
}

这也有一些帮助者:

对于一个位于基本多语言平面(plane 0)之外且由代理对组成的字符,runes 会将它们组合并返回一个单独的整数。

事实上,建议您不要使用原始列表来处理此类字符,因为这可能会引起后续问题。语言指南专门提到了这一点:

注意:当使用列表操作操作符处理 runes 时要小心。这种方法很容易失效,具体取决于特定的语言、字符集和操作。

此外,请参考 Dart 字符串教程语言指南(其中实际上展示了解决此类问题的方法)。


我找到了代码,但在VS Code中它无法工作。 U+1F636 - Sam Cromer
鼓励您编辑问题并展示您的[mcve],并解释您得到的结果。一个即刻的猜想是你的“输出”期望一个特定的字符集,或字形在字体中缺失。但除非你向我们展示,否则我们不知道。 - user1531971
我得到的结果是,当我输入UTF代码“U+1F636”时,表情符号不会显示。 - Sam Cromer
UTF代码在模拟器中运行后可以正常工作,但我仍然不知道为什么无论我将它们粘贴到哪里,甚至是记事本中,表情符号都会出现 :)。这段代码可以正常工作:const _emojis = ['\u{1f605}','\u{1f606}','\u{1f607}','\u{1f608}','\u{1f609}']; - Sam Cromer
一个编辑器如何处理从剪贴板粘贴时操作系统的行为并不是一个很好的起点,因为那里有太多的移动部件。话虽如此,其中一些东西可能有点难以理解,但是可以理解。我建议从这里开始:https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/ - user1531971

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