如何:将字符串中的 unicode 字符表示转换为实际的 unicode 字符

Bri*_*der 3 c# unicode font-awesome xamarin.forms

我在 Xamarin 应用程序中使用了很棒的字体。XamarinApp 与之对话的 api 返回一个 fxxx 字符串,以指示要显示的图标。在代码中我添加了 \u 但它被视为一个字符串而不是一个 unicode 字符。

    var value = "f641";
    newLabel.Text = char.Parse($"\\u{value}").ToString();
Run Code Online (Sandbox Code Playgroud)

我试过 char.Parse 但它抛出一个错误:

System.FormatException: 字符串必须正好是一个字符长。

有什么建议 ?

Cod*_*ter 5

您想要Char持有私有代码点U+F641 的值

您可以通过将其解析为它所代表的十六进制值来实现:

var input = "f641";
int p = int.Parse(input, System.Globalization.NumberStyles.HexNumber); // 63041
Run Code Online (Sandbox Code Playgroud)

然后将其转换为 a Char

char c = (char)p;
Run Code Online (Sandbox Code Playgroud)

根据可能的代码点的范围,您可能没有足够的空间char来存储代码点,如@Panagiotis 所示,请使用Char.ConvertFromUtf32(int)

string chars = Char.ConvertFromUtf32(p);
Run Code Online (Sandbox Code Playgroud)

但是你会有一个字符串,而不是单个字符。