我有FontAwesome备忘单中的unicode字符:
#xf042;
如何将该字符放入c#?
string s =" ????&#34 ;;
我尝试输入它并使用。
答案 0 :(得分:3)
假设十六进制输入表示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);
显然你需要根据输入调整正确的编码,因为十六进制只是表示一个字节数组,为了将这个字节数组解码回一个字符串,你需要知道编码。 / p>
答案 1 :(得分:3)
如果您只想要Darin发布的更轻版本将十六进制值转换为包含FontAwesome字体私有区域中的unicode位置的字符串,则可以使用此&gt;&gt;
private static string UnicodeToChar( string hex ) {
int code=int.Parse( hex, System.Globalization.NumberStyles.HexNumber );
string unicodeString=char.ConvertFromUtf32( code );
return unicodeString;
}
只需按以下方式调用&gt;&gt;
string s = UnicodeToChar( "f042" );
或者,您可以简单地使用C#类,其中包含预先写好的所有图标和加载程序&gt;&gt; FontAwesome For WinForms CSharp