在代码隐藏中使用时,Unicode字符(U + 1FXYZ)无法正确输出

在我的代码隐藏中,我正在尝试返回unicode字符的hex代码。

我正在尝试输出Segoe UI Symbol字体中的任何一个字符: http : //www.istartedsomething.com/uploads/emojisegoe.html 。 例如,“U + 1F60A”。

如果我通过我的xaml这样做,例如:

FontFamily="Segoe UI Symbol" Text="😊" 

然后它工作正常。

但是,如果我绑定值以通过.cs转换器类检索它,则不会出现正确的字符:

 FontFamily="Segoe UI Symbol" Text="{Binding Pivot7Days.EmojiWeekendSummary, Converter={StaticResource EmoticonConverter}}" 

转换器类:

 switch (input) { case "happy": return "\u1F60A"; case "sad": return "\u1F60B"; default: return "\u1F610"; } 

我得到一个完全不同的字符,后跟返回字符串中的最后一个字符,例如’A’,’B’或’0’。 例如,当我看到一张带舌头的脸(U + 1F60B)时,我会得到以下内容:

在此处输入图像描述

我在后面的代码中使用了不正确的转义序列吗?

超出U + FFFF的字符不能直接写成\u....文字(如果你试过,只使用前四个hex数字,你得到一个错误的字符)但作为代理对或更容易,使用8位\U字面,例如U + 1F60A的'\U0001F60A'