【发布时间】:2021-01-23 00:40:58
【问题描述】:
我正在尝试将包含表示表情符号的 Unicode 格式的字符串的 String 对象转换为 String,并将 Unicode 表示的表情符号作为其唯一字符,例如将"\u1F34E" 转换为????。
假设字符串的转义序列将被正确处理,我尝试了以下操作:
String str = "\u1F34E";
Console.WriteLine("'{0}' to '{1}'", str, str.ToCharArray()[0]);
输出:
'\u1F34E' to '\'
将字符串直接输出到文本文件会产生相同的结果,因此它不仅仅是我使用的调试器。我不确定该怎么做。任何帮助将不胜感激。
编辑:
我意识到我最初的问题并不清楚;我的意图是在字符串中有一个格式正确的 UTF-16 字符串和一个 UTF-32 unicode,作为一个 API,我发送这个值需要这种格式。我已经成功解决了以下问题:
String str = "1F34E"; //removed \u with prior parsing
int unicode_utf32 = int.Parse(stdemote.Unicode, System.Globalization.NumberStyles.HexNumber);
String unicode_utf16_str = Char.ConvertFromUtf32(unicode_utf32);
Console.WriteLine("'{0}' to '{1}'", str, unicode_utf16_str);
【问题讨论】:
-
请注意,帖子中显示的代码不会产生您声称的输出。目前还不清楚您是否正在寻找如何在 C# 字符串 或 中表示非基本平面表情符号字符,您实际上有来自其他地方的表示形式,其格式类似于 C# 字符串,并且您希望将其转换为C# 字符串 或 您不知道非基本平面 Unicode 代码点如何在 .Net 字符串中表示并询问...