在我的代码隐藏中,我正在尝试返回unicode字符的十六进制代码.
我正在尝试输出Segoe UI Symbol字体中的任何一个字符:http://www.istartedsomething.com/uploads/emojisegoe.html.例如,"U + 1F60A".
如果我通过我的xaml这样做,例如:
FontFamily="Segoe UI Symbol" Text="😊"
Run Code Online (Sandbox Code Playgroud)
然后它工作正常.
但是如果我绑定值以通过.cs转换器类检索它,则不会出现正确的字符:
FontFamily="Segoe UI Symbol" Text="{Binding Pivot7Days.EmojiWeekendSummary, Converter={StaticResource EmoticonConverter}}"
Run Code Online (Sandbox Code Playgroud)
转换器类:
switch (input)
{
case "happy":
return "\u1F60A";
case "sad":
return "\u1F60B";
default:
return "\u1F610";
}
Run Code Online (Sandbox Code Playgroud)
我得到一个完全不同的字符,后跟返回字符串中的最后一个字符,例如'A','B'或'0'.例如,当我看到一张带舌头的脸(U + 1F60B)时,我会得到以下内容:
我在后面的代码中使用了不正确的转义序列吗?
超出U + FFFF的字符不能直接写为\u....
文字(如果你尝试,只使用前四个十六进制数字,你得到一个错误的字符)但作为代理对,或者更容易,使用八位数字\U
,例如'\U0001F60A'
对于U + 1F60A.
归档时间: |
|
查看次数: |
2421 次 |
最近记录: |