我在Xamarin应用程序中使用了很棒的字体。 XamarinApp与之交谈的api返回一个fxxx字符串,以指示要显示的图标。在代码中,我添加了\ u,但它被视为字符串而不是unicode字符。
var value = "f641";
newLabel.Text = char.Parse($"\\u{value}").ToString();
我尝试了char.Parse,但它引发了错误:
System.FormatException:字符串必须恰好是一个字符长。
有什么建议吗?
答案 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);
但是您将拥有一个字符串,而不是一个字符。