C# byte[]数组和string的互相转化
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')给字符串加上结束标识。
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。
string str = Convert.ToBase64String(bytes); byte[] decBytes = Convert.FromBase64String(str);
这种方法简单明了,完美无问题。需要注意的是,转换出来的string可能会包含 '+','/' , '=' 所以如果作为url地址的话,需要进行 encode。
string str = HttpServerUtility.UrlTokenEncode(bytes); byte[] decBytes = HttpServerUtility.UrlTokenDecode(str);
这种方法会自动编码url地址的特殊字符,可以直接当做url地址使用。但需要依赖 System.Web库才能使用。
将字符串转成 Base64 编码
/// <summary> /// /// </summary> /// <param name="Str"></param> /// <returns></returns> public string ToBase64Str(string Str) { byte[] b = System.Text.Encoding.Default.GetBytes(Str); return Convert.ToBase64String(b); } /// <summary> /// /// </summary> /// <param name="Str"></param> /// <returns></returns> public string FromBase64Str(String Str) { byte[] b = Convert.FromBase64String(Str); return System.Text.Encoding.Default.GetString(b); }
转载于:https://scottcgi.blog.csdn.net/article/details/71643015?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-71643015-blog-106790600.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-5-71643015-blog-106790600.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=6