C# - 尝试将字符串(使用HEX)转换为在TextBox中显示扩展的ASCII字符

时间:2015-10-09 13:23:51

标签: c# encoding hex ascii

我正在尝试使用十六进制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);
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

byte.Parse期待一个包含整数(十进制)的字符串。但是,HexString.Substring(i, 2)将返回十六进制数字(作为字符串)。

执行以下操作以指示byte.Parse期望十六进制数字:

data[i / 2] = byte.Parse(HexString.Substring(i, 2), NumberStyles.HexNumber);