/// <summary>
/// 将字节数组转换为HEX码字符串(也称为OctetString)
/// 例子:{0x01, 0x11, 0x22, 0xAA, 0xB4}经过转换为"011122AAB4"
/// </summary>
/// <param name="bArray">需要转换的字节数组</param>
/// <returns>转换后的OctetString</returns>
public static String ByteArrayToOctetString(Byte[] bArray, bool addSpace = false)
{
StringBuilder sb = new StringBuilder();
foreach (Byte b in bArray)
{
sb.Append(b.ToString("X2"));
if (addSpace)
sb.Append(" ");
}
return sb.ToString();
}
public static String ByteArrayToOctetString(Byte[] bArray,int start,int len, bool addSpace = false)
{
StringBuilder sb = new StringBuilder();
for(int i= start; i< len&&i< bArray.Length; i++)
{
sb.Append(bArray[i].ToString("X2"));
if (addSpace)
sb.Append(" ");
}
return sb.ToString();
}
public static String ByteArrayToOctetString(Byte[] bArray, string strSpace)
{
StringBuilder sb = new StringBuilder();
foreach (Byte b in bArray)
{
sb.Append(b.ToString("X2") + strSpace);
}
return sb.ToString();
}
/// <summary>
/// 将HEX码字符串(也称为OctetString)转换为字节数组。
/// 例子:"011122AAB4"经过转换为{0x01, 0x11, 0x22, 0xAA, 0xB4}
/// </summary>
/// <param name="s">需要转换的OctetString</param>
/// <returns>转换后的字节数组</returns>
public static byte[] OctetStringToByteArray(string s)
{
s = s.Replace(" ", "").Trim('\t');
int iLen = s.Length / 2;
byte[] result = new byte[iLen];
for (int i = 0; i < iLen; i++)
{
result[i] = Convert.ToByte(s.Substring(i * 2, 2), 16);
}
return result;
}
/// <summary>
/// 将HEX码字符串(也称为OctetString)转换为普通字符串,一般应用于ASCII码可见字符转换。
/// 例子:"313233414243"经过转换为"123ABC"
/// </summary>
/// <param name="s">需要转换的OctetString</param>
/// <returns>转换后的字符串</returns>
public static String OctetStringToString(string s)
{
try
{
s = s.Replace(" ", "").Trim('\t');
int iCount = s.Length / 2;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < iCount; i++)
{
Byte b = Convert.ToByte(s.Substring(i * 2, 2), 16);
sb.Append(Convert.ToChar(b));
}
return sb.ToString();
}
catch
{
return s;
}
}
public static String OctetStringToSpaceOctetString(string s)<