HOWTO:将字符串中的Unicode字符表示形式转换为实际的Unicode字符

时间:2019-05-07 08:21:42

标签: c# unicode xamarin.forms font-awesome

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

    var value = "f641";
    newLabel.Text = char.Parse($"\\u{value}").ToString();

我尝试了char.Parse,但它引发了错误:

  

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您想让一个Char保留专用代码点U+F641的值。

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

var input = "f641";
int p = int.Parse(input, System.Globalization.NumberStyles.HexNumber); // 63041

然后将其转换为Char

char c = (char)p;

取决于可能的代码点的范围,您在char中可能没有足够的空间来存储代码点,因此@Panagiotis表示使用Char.ConvertFromUtf32(int)

string chars = Char.ConvertFromUtf32(p);

但是您将拥有一个字符串,而不是一个字符。