来自 Unicode 的 C# 字符

C# Character from Unicode

我有一个来自 FontAwesome 作弊的 unicode 字符 sheet:

#xf042;

如何将该字符放入 C# 中?

string s = "????";

我尝试按原样输入并使用 .

假设十六进制输入表示 UTF8 编码的字符串,您可以使用一个函数来转换十六进制字符串:

public static string ConvertHexToString(string hex)
{
    int numberChars = hex.Length;
    byte[] bytes = new byte[numberChars / 2];
    for (int i = 0; i < numberChars; i += 2)
    {
        bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
    }
    return Encoding.UTF8.GetString(bytes);
}

然后在输入到此函数之前从输入中过滤掉不需要的字符:

string input = "#xf042;";
string s = input.Replace("#x", string.Empty).Replace(";", string.Empty);
string result = ConvertHexToString(s);

显然,您需要根据输入调整正确的编码,因为十六进制仅表示字节数组,为了将此字节数组解码回字符串,您需要知道编码。

如果你只是想要 Darin 发布的更轻版本,将十六进制值转换为包含来自 FontAwesome 字体私有区域的 unicode 位置的字符串,你可以使用这个 >>

private static string UnicodeToChar( string hex ) {
    int code=int.Parse( hex, System.Globalization.NumberStyles.HexNumber );
    string unicodeString=char.ConvertFromUtf32( code );
    return unicodeString;
}

如下调用即可>>

string s = UnicodeToChar( "f042" );

或者,您可以简单地使用 C# class 以及此处预先编写的所有图标和加载程序 >> FontAwesome For WinForms CSharp