如何在 C# 中构建带有表情符号的 unicode 字符串?
How to build a unicode string with emojis in c#?
我一直在使用以下代码来翻译从字符串数组格式的文本文件中获取的 unicode 部分 ["1F3F3", "FE0F", "200D", "1F308"]
。提到的 unicode 部分是 ️ 表情符号的示例,取自 unicode.org 资源(页面上的#1553)。
public static void PrintEmoji(params string[] unicodeParts)
{
var unicodeBuilder = new StringBuilder();
foreach (var unicodePart in unicodeParts)
{
unicodeBuilder.Append((char) Convert.ToInt32(unicodePart, 16));
}
if(unicodeBuilder.ToString() is var unicodeResult && !string.IsNullOrWhiteSpace(unicodeResult))
Console.WriteLine(unicodeResult);
}
但此代码仅适用于UTF-16编码单元,例如(U+1F600),不适用于unicode编码部分。我应该如何修改我的方法才能同时使用 unicode 代码部分?
感谢 JosefZ,以下解决方案似乎工作正常。
public static void PrintEmoji(params string[] unicodeParts)
{
var unicodeBuilder = new StringBuilder();
foreach (var unicodePart in unicodeParts)
{
unicodeBuilder.Append(char.ConvertFromUtf32(Convert.ToInt32(unicodePart,16)));
}
if(unicodeBuilder.ToString() is var unicodeResult && !string.IsNullOrWhiteSpace(unicodeResult))
Console.WriteLine(unicodeResult);
}
我一直在使用以下代码来翻译从字符串数组格式的文本文件中获取的 unicode 部分 ["1F3F3", "FE0F", "200D", "1F308"]
。提到的 unicode 部分是 ️ 表情符号的示例,取自 unicode.org 资源(页面上的#1553)。
public static void PrintEmoji(params string[] unicodeParts)
{
var unicodeBuilder = new StringBuilder();
foreach (var unicodePart in unicodeParts)
{
unicodeBuilder.Append((char) Convert.ToInt32(unicodePart, 16));
}
if(unicodeBuilder.ToString() is var unicodeResult && !string.IsNullOrWhiteSpace(unicodeResult))
Console.WriteLine(unicodeResult);
}
但此代码仅适用于UTF-16编码单元,例如(U+1F600),不适用于unicode编码部分。我应该如何修改我的方法才能同时使用 unicode 代码部分?
感谢 JosefZ,以下解决方案似乎工作正常。
public static void PrintEmoji(params string[] unicodeParts)
{
var unicodeBuilder = new StringBuilder();
foreach (var unicodePart in unicodeParts)
{
unicodeBuilder.Append(char.ConvertFromUtf32(Convert.ToInt32(unicodePart,16)));
}
if(unicodeBuilder.ToString() is var unicodeResult && !string.IsNullOrWhiteSpace(unicodeResult))
Console.WriteLine(unicodeResult);
}