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

posted @   卑微小老弟  阅读(2219)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示