我知道如何将char转换为十六进制。但是当涉及特殊字符时,正常的转换方法不起作用。
的十六进制值是91 参考:http://www.aboutmyip.com/AboutMyXApp/AsciiChart.jsp
我的代码
string text = "‘";
char[] chars = text.ToCharArray();
StringBuilder stringBuilder = new StringBuilder();
foreach (char c in chars)
{
stringBuilder.Append(((Int16)c).ToString("x"));
}
String textAsHex = stringBuilder.ToString();
我的产量在2018年达到了91,但是我应该得到91
答案 0 :(得分:0)
基于[@ Richard,@ harold,@ jdweng和@ 500-内部服务器错误]反馈,我找到了解决问题的方法。这将包括扩展的ASCII表 [将字符转换为十六进制值]
在下面找到工作代码
private void button3_Click(object sender, EventArgs e)
{
string str = "‘";
var encoding = System.Text.Encoding.Default;
var values = encoding.GetBytes(str);
Decimal dec = values[0];
var hex = ToHexString(dec);
string result = hex.ToString();
}
public static string ToHexString(Decimal dec)
{
var sb = new StringBuilder();
while (dec > 1)
{
var r = dec % 16;
dec /= 16;
sb.Insert(0, ((int)r).ToString("X"));
}
return sb.ToString();
}
输出为91