WP8.1 上 XAML 和 C# 中的表情符号具有更长的 Unicode 范围
Emojis in XAML & C# on WP8.1 with longer Unicode range
我在我的 WP8.1 应用程序中看到一个非常奇怪的行为。在我的 XAML 中,我有以下内容,它完美地转化为一个漂亮的 😠 (愤怒的脸),一切都好。
<TextBlock x:Name="FaceTextBlock" Text="😠" FontFamily="Segoe UI Symbol" />
但是当我尝试以编程方式执行此操作时,它的行为就像最后一位数字“0”不存在一样:
FaceTextBlock.Text = "\u1F620"; // This behaves like "\u1F62" and is displayed as "ὢ0"
作为反例,我尝试使用简单的 "Plane Emoji" ✈ "U+2708" 效果很好。知道我在这里缺少什么吗?会不会是文化的原因?
FaceTextBlock.Text = "\u2708"; // This works fine
C# 中的 Unicode 字符转义使用 4 位或 8 位十六进制数字表示,因此您必须使用 8 位数字编写表情符号:
"\U0001F620"
注意 2.4.1 Unicode character escape sequences 中记录的大写字母 U。
我在我的 WP8.1 应用程序中看到一个非常奇怪的行为。在我的 XAML 中,我有以下内容,它完美地转化为一个漂亮的 😠 (愤怒的脸),一切都好。
<TextBlock x:Name="FaceTextBlock" Text="😠" FontFamily="Segoe UI Symbol" />
但是当我尝试以编程方式执行此操作时,它的行为就像最后一位数字“0”不存在一样:
FaceTextBlock.Text = "\u1F620"; // This behaves like "\u1F62" and is displayed as "ὢ0"
作为反例,我尝试使用简单的 "Plane Emoji" ✈ "U+2708" 效果很好。知道我在这里缺少什么吗?会不会是文化的原因?
FaceTextBlock.Text = "\u2708"; // This works fine
C# 中的 Unicode 字符转义使用 4 位或 8 位十六进制数字表示,因此您必须使用 8 位数字编写表情符号:
"\U0001F620"
注意 2.4.1 Unicode character escape sequences 中记录的大写字母 U。