这个转换后byte[]前后不相等,图片肯定是不能显示的,求大神
string bs = System.Text.Encoding.UTF8.GetString(System.IO.File.ReadAllBytes(HttpContext.Current.Server.MapPath(@"~/XXQD\resources\app\imgs\chsidefault.jpg"))); httpResult.ResultByte = System.Text.Encoding.UTF8.GetBytes(bs);
要转换为Base64String,改为下面的代码试试:
string bs = Convert.ToBase64String( System.IO.File.ReadAllBytes( System.Web.HttpContext.Current.Server.MapPath( @"~/XXQD\resources\app\imgs\chsidefault.jpg"))); httpResult.ResultByte = Convert.FromBase64String(bs);
utf8是用来将二进制数转字节数组,而不是将字节数组转换为二进制数组的。不是任意字节数组都能通过utf8编码转换为字符串的,所以你的第一步转换是可能有损失的,第二步就还原不回去了。
将二进制转换为字符串的做法应该是用楼上的base64编码,这个才是可逆的。