public string EncodingSMS(string s)
{
string result = string.Empty;
byte[] arrByte = System.Text.Encoding.GetEncoding("GB2312").GetBytes(s);
for(int i = 0; i < arrByte.Length; i++)
{
result += System.Convert.ToString(arrByte[i], 16); //Convert.ToString(byte, 16)把byte转化成十六进制string
}
return result;
}
public string DecodingSMS(string s)
{
string result = string.Empty;
byte[] arrByte = new byte[s.Length / 2];
int index = 0;
for(int i = 0; i < s.Length; i += 2)
{
arrByte[index++] = Convert.ToByte(s.Substring(i,2),16); //Convert.ToByte(string,16)把十六进制string转化成byte
}
result = System.Text.Encoding.Default.GetString(arrByte);
return result;
}
追问我想要的是转换成16进制,并不是16进制和字节间的转换。刚接触C#.还望指导。
追答System.Convert.ToString(arrByte[i], 16); 这一句就是取一个字节转成16进制的字符串
Convert.ToByte(s.Substring(i,2),16); 这一句是把16进制的字符串取两位转成字节,最后统一转成字符串,有什么问题吗?
追问不好意思,是我自己理解错了!