fre*_*k91 4 c# windows-runtime windows-phone-8.1
我正在尝试创建一个""从此字符串开始的带有表情符号的字符串"D83DDC71"。为此,我尝试转换此 string 中的上面的字符串"\uD83D\uDC71"。
如果我使用此代码,它可以工作(文本框按预期显示):
textbox.Text += "\uD83D\uDC71";
Run Code Online (Sandbox Code Playgroud)
但如果我使用它,它不起作用(文本框显示确切的文本“\uD83D\uDC71”而不是单个字符):
textbox.Text += sender.Code.ToString("X").insert(4, @"\u").insert(0, @"\u");
Run Code Online (Sandbox Code Playgroud)
将表情符号的十六进制表示形式转换为相应的 C# 字符串 (UTF-16) 的正确方法是什么?
好的。您似乎有一个字符串,它给出了字符 U+1F471 ( ) 的每个 UTF-16 代码单元的十六进制。
由于char表示 UTF-16 代码单元,因此将字符串拆分为两个 4 字符块,将其解析为十六进制的 int,将每个块转换为char,然后将它们组合成一个字符串:
var personWithBlondHair = ""
+ (char)int.Parse("D83DDC71".Substring(0, 4), NumberStyles.HexNumber)
+ (char)int.Parse("D83DDC71".Substring(4, 4), NumberStyles.HexNumber);
Run Code Online (Sandbox Code Playgroud)
根据https://dotnetfiddle.net/oTgXfG