本文介绍了如何写一个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字符作为字符串文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!