字符与字节的转化

本文探讨了如何将图片文件读取为字节流后,转换为字符串的方法。提供了使用Base64编码进行转换的解决方案,并讨论了不同编码方式的适用场景。

有一段这样的代码:把图片用二进制的方式读出来。
FileStream fs = new FileStream(@"D:/22-11-46-3-524454584.jpg",FileMode.Open,FileAccess.Read);
byte[] mydata = new byte[fs.Length];
int Length = Convert.ToInt32(fs.Length);
fs.Read(mydata,0,Length);
fs.Close();
我想把读出来的字节 mydata 转换成 字符串,请问该怎么转阿
网友回复:用base64编码
网友回复:救命啊,,你读出来的是位图信息,转换成字符串,除非你自己定义格式化方法.否则出来的都是你看不懂的东西
网友回复:Convert.ToBase64String
转回Convert.FromBase64String
网友回复:System.Text.Encoding.UTF8.GetString
网友回复:楼上请不要误导,非字符编码字节数组不可能这样转字符串的
网友回复:还可以用十六进制,转回麻烦些
网友回复:mark
网友回复:sorry,只看标题了....
网友回复:是这样吗?Convert.ToBase64String(mydata)
可是测试之后总是无响应阿。
网友回复:哦,可以了,谢谢!
网友回复:mark~
网友回复:/// <summary>

/// 将文本字符串转换成带,号分离的二进制字符串
/// </summary>
/// <param name="strContent"> 文本字符串 </param>
/// <returns> 带,号分离的二进制字符串 </returns>
private string strTextTostrBin(string strText)
{
byte[] bytearr=null;

string stringtobin="";
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
bytearr=encoding.GetBytes(strText);

for(int i=0;i <bytearr.Length;i )
{
stringtobin ="," bytearr[i].ToString();
}
return stringtobin.Substring(1);

}

/// <summary>
/// 将带,号分离的二进制字符串转换成文本字符串
/// </summary>
/// <param name="strBin"> 带,号分离的二进制字符串 </param>
/// <returns> 文本字符串 </returns>
private string strBinTostrText(string strBin)
{
string [] bintostr=strBin.Split(',');
Array binArray=Array.CreateInstance(Type.GetType("System.Byte"),bintostr.Length);
for(int i=binArray.GetLowerBound(0);i <=binArray.GetUpperBound(0);i )
{
binArray.SetValue(byte.Parse(bintostr[i] ""),i);
}

byte[] strtobin=new byte[bintostr.Length];
for(int i=binArray.GetLowerBound(0);i <=binArray.GetUpperBound(0);i )
{
strtobin[i]=(byte)binArray.GetValue(i);
}
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(strtobin);
}
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值