本文介绍了如何写一个3字节的Unicode字符作为字符串文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

例如

用于Dingbats(2702-27B0)之类的两字节代码

For two-byte codes like Dingbats (2702 - 27B0)

'abcd\u2702efg'

可以正常工作,但是对于较长的代码,例如 \u1F601 这不起作用。

works fine but for longer codes like \u1F601 this doesn't work.

String.fromCharCode(0x1f601)

可以工作。

main() {
  print('abcd\u2702efg');
  print('abcd\u1F601efg');
  print(new String.fromCharCode(0x1f601));
}

尝试在

是否可以编写 U + 1F601 作为Dart中的字符串文字?

Is there a way to write U+1F601 as a string literal in Dart?

推荐答案

用花括号括住字符代码:

Enclose the character code in curly braces:

print('abcd\u{1F601}efg');

来自:


  • ...

  • \x HEX DIGIT 十六进制数字 ,相当于
    \u {十六进制数字 十六进制数字 }。

  • \u 十六进制数字 HEX DIGIT HEX DIGIT HEX DIGIT ,相当于bu { HEX DIGIT HEX DIGIT 十六进制数字 }。

  • \ u { HEX DIGIT SEQUENCE }是由 HEX DIGIT SEQUENCE 表示的
    的Unicode标量值。如果 HEX DIGIT SEQUENCE
    值不是有效的unicode标量
    值,则是编译时错误。

  • ...
  • \x HEX DIGIT HEX DIGIT, equivalent to \u{HEX DIGIT HEX DIGIT}.
  • \u HEX DIGIT HEX DIGIT HEX DIGIT HEX DIGIT, equivalent to \u{HEX DIGIT HEX DIGIT HEX DIGIT HEX DIGIT}.
  • \u{HEX DIGIT SEQUENCE} is the unicode scalar value represented by the HEX DIGIT SEQUENCE. It is a compile-time error if the value of the HEX DIGIT SEQUENCE is not a valid unicode scalar value.

这篇关于如何写一个3字节的Unicode字符作为字符串文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 22:17