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

 格林威治 发布于 2023-02-06 14:03

在我的代码隐藏中,我正在尝试返回unicode字符的十六进制代码.

我正在尝试输出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)时,我会得到以下内容:

在此输入图像描述

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

1 个回答
  • 超出U + FFFF的字符不能直接写为\u....文字(如果你尝试,只使用前四个十六进制数字,你得到一个错误的字符)但作为代理对,或者更容易,使用八位数字\U,例如'\U0001F60A'对于U + 1F60A.

    2023-02-06 14:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有