我正在尝试将十六进制字符串转换为ASCII,使用如下代码:
public void ConvertHex(String hexString)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = hexString.Substring(i, i + 2);
System.Convert.ToChar(System.Convert.ToUInt32(hexString.Substring(0, 2), 16)).ToString();
}
String ascii = sb.ToString();
MessageBox.Show(ascii);
}
但我得到了一个外部或边界异常,我确信这是一个明显的错误,但我尝试过的其他代码也不能工作。我做错了什么?
发布于 2011-04-11 01:04:10
String hs = hexString.Substring(i, i + 2);
System.Convert.ToChar(System.Convert.ToUInt32(hexString.Substring(0, 2), 16)).ToString();
你有没有注意到你从未使用过hs
?
你要一遍又一遍地转换前两个字符?
发布于 2011-04-11 00:59:53
由于要将索引递增2,因此需要在字符串长度结束前停止循环。否则,循环的最后一次迭代将尝试读取超出字符串末尾的字符。
for (int i = 0; i < hexString.Length - 1, i += 2)
https://stackoverflow.com/questions/5613279
复制相似问题