【问题标题】:HOWTO : convert unicode character representation in string to the actual unicode character如何:将字符串中的 unicode 字符表示形式转换为实际的 unicode 字符
【发布时间】:2019-05-07 08:21:41
【问题描述】:

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

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

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

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

有什么建议吗?

【问题讨论】:

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


【解决方案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);

但是你会得到一个字符串,而不是一个字符。

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多