首页新闻找找看学习计划

图片流转换成byte[],然后在将byte[]转换成string,之后还能将string转换成byte[]?

0
悬赏园豆:10 [已解决问题] 解决于 2015-09-13 12:57

这个转换后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);
小银光的主页 小银光 | 初学一级 | 园豆:25
提问于:2015-06-03 17:36
< >
分享
最佳答案
0

要转换为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);
收获园豆:5
dudu | 高人七级 |园豆:39087 | 2015-06-03 17:46
其他回答(1)
0

utf8是用来将二进制数转字节数组,而不是将字节数组转换为二进制数组的。不是任意字节数组都能通过utf8编码转换为字符串的,所以你的第一步转换是可能有损失的,第二步就还原不回去了。

将二进制转换为字符串的做法应该是用楼上的base64编码,这个才是可逆的。

收获园豆:5
天方 | 园豆:5264 (大侠五级) | 2015-06-03 22:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册