gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:31:10 25 4
gpt4 key购买 nike

在我的代码隐藏中,我试图返回 unicode 字符的十六进制代码。

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

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

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

然后它工作正常。

但如果我绑定(bind)该值以通过 .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) 时,我却得到了以下信息:

enter image description here

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

最佳答案

U+FFFF 以外的字符不能直接写成 \u.... 文字(如果你尝试这样做,只会使用前四个十六进制数字,你会得到一个错误的字符)但是作为代理对,或者更简单地使用八位数 \U 文字,例如'\U0001F60A' 为 U+1F60A。

关于c# - 在代码隐藏中使用时,Unicode 字符 (U+1FXYZ) 无法正确输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20934250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com