【发布时间】:2020-06-09 06:15:29
【问题描述】:
假设我有以下代码点:u1F64A(即 ???? 表情符号)。
这可以写成:
string monkey = "\u1F64A";
我如何在运行时将已知代码点(作为整数)转换为字符串?
int codepoint = 0xF64A;
string monkey = //?
【问题讨论】:
标签: c#
假设我有以下代码点:u1F64A(即 ???? 表情符号)。
这可以写成:
string monkey = "\u1F64A";
我如何在运行时将已知代码点(作为整数)转换为字符串?
int codepoint = 0xF64A;
string monkey = //?
【问题讨论】:
标签: c#
当我想在 C# 中使用 Emojis 时,我构建了一个辅助类,如下所示:
public class Emoji
{
readonly int[] codes;
public Emoji(int[] codes)
{
this.codes = codes;
}
public Emoji(int code)
{
codes = new int[] { code };
}
public override string ToString()
{
if (codes == null)
return string.Empty;
var sb = new StringBuilder(codes.Length);
foreach (var code in codes)
sb.Append(Char.ConvertFromUtf32(code));
return sb.ToString();
}
}
这样我就可以string monkeyEmoji = new Emoji(0xF64A);
它还支持具有多个代码点的表情符号(是的,那些存在并且很痛苦)
【讨论】:
上面的代码甚至可以编译吗?它不能在我的机器上编译。
为什么要这样,\u1F64A 不是一个有效的字符串。
我认为string monkey = $"{char.ConvertToUtf32((char) 0xF64, 'A')}" 可行,但这只是猜测。我只是为了澄清你写的第一行代码在我的机器上无法编译。
【讨论】:
\u1F64A 侧翼编辑