C#byte[]数组和string的互相转化(四种⽅法)
第⼀种
[csharp] view plain copy
string  str    = System.Text.Encoding.UTF8.GetString(bytes);
byte[] decBytes = System.Text.Encoding.UTF8.GetBytes(str);
同样的,System.Text.Encoding.Default,System.Text.Encoding.ASCII也是可以的。还可以使⽤System.Text.Encoding.UTF8.GetString(bytes).TrimEnd('\0')给字符串加上结束标识。
第⼆种
[csharp] view plain copy
string    str    = BitConverter.ToString(bytes);
String[] tempArr = str.Split('-');
byte[]  decBytes = new byte[tempArr.Length];
for (int i = 0; i < tempArr.Length; i++)
{
decBytes[i] = Convert.ToByte(tempArr[i], 16);
}
这种⽅法会给字符串加上'-'连字符,并且没有函数转换回去。所以需要⼿动转换为bytes。
第三种
[csharp] view plain copyc++string类型
string str      = Convert.ToBase64String(bytes);
byte[] decBytes = Convert.FromBase64String(str);
这种⽅法简单明了,完美⽆问题。需要注意的是,转换出来的string可能会包含'+','/','='所以如果作为url地址的话,需要进⾏encode。
第四种
[csharp] view plain copy
string  str    = HttpServerUtility.UrlTokenEncode(bytes);
byte[] decBytes = HttpServerUtility.UrlTokenDecode(str);
这种⽅法会⾃动编码url地址的特殊字符,可以直接当做url地址使⽤。但需要依赖System.Web库才能使⽤。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。