我正在尝试使用十六进制FFFFFFFF7DA98035
的字符串,并在我的程序中的TextBox中显示其扩展的ASCII字符。我遇到80的问题,因为它的-128并没有显示任何内容。
Visual Studio编译时没有错误,但在解析字符串时抛出异常。
private static string ConvertHextoAscii(string HexString)
{
byte[] data = new byte[HexString.Length / 2];
for (int i = 0; i < HexString.Length - 1; i += 2)
{
data[i / 2] = byte.Parse(HexString.Substring(i, 2));
}
return Encoding.GetEncoding("Windows-1252").GetString(data);
}
任何帮助都将不胜感激。
答案 0 :(得分:2)
byte.Parse
期待一个包含整数(十进制)的字符串。但是,HexString.Substring(i, 2)
将返回十六进制数字(作为字符串)。
执行以下操作以指示byte.Parse
期望十六进制数字:
data[i / 2] = byte.Parse(HexString.Substring(i, 2), NumberStyles.HexNumber);