100分求如何把二进制数据流转化成字符串

时间:2022-12-30 22:30:39
如题:如何把二进制数据流转化成字符串
目前是把字符串转化成二进制流了,怎么转化回来
比如:字符串"10"转化后为:0011000100110000
怎么转化回来,谢谢。。。不够再加....

11 个解决方案

#1


Convert.ToInt32(string value, int fromBase): 
可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16: 

#2


不知道你说的“二进制流”是什么意思。如果是Stream可读可写的byte[],那么同时你要了解将字符串转换为byte[]时使用的编码,例如UTF8,然后转换:

    Encoding.UTF8.GetString(data);

#3


我这有个图片转成二进制流,再从二进制流转成图片的代码 ,你可以参考下。
#region 取出二进制流图片
 DataTable dtimg = bll.getimgdt(p_num, database);
 byte[] filedata = (byte[])dtimg.Rows[0][0];
 System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
 System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
  if (!System.IO.Directory.Exists("d:\\image"))
  System.IO.Directory.CreateDirectory("d:\\image");
  string filename = "d:\\image\\" + dtimg.Rows[0][1].ToString();
 img.Save(filename);
 #endregion
#region 将图片转为二进制流
FileStream fs = File.OpenRead(filename);
byte[]  content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
#endregion

#4


引用 1 楼 wuyq11 的回复:
Convert.ToInt32(string value, int fromBase):
可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16:

#5


字符串"10"转化后为:0011000100110000
==>
你是转化成的以二进制形式显示的字符串?

#6


官方提供很多方法的,自己通过VS智能感知慢慢找

#7


byte[]   bytes   =   System.Text.Encoding.GetEncoding("GB2312").GetBytes("中文字符串");   
    
  还原:   
  string   str   =   System.Text.Encoding.GetEncoding("GB2312").GetString(bytes);

#8


帮顶……

#9


字符串的转换跟编码相关的.
"比如:字符串"10"转化后为:0011000100110000"
但是如果是 中文或者特殊字符呢?
在不同的编码下 比如UTF8/BIG5/GB2312/... ...等等,转换出的结果都是不一样的.

#10


引用 9 楼 lost_painting 的回复:
字符串的转换跟编码相关的.
"比如:字符串"10"转化后为:0011000100110000"
但是如果是 中文或者特殊字符呢?
在不同的编码下 比如UTF8/BIG5/GB2312/... ...等等,转换出的结果都是不一样的.
1

#11


没事玩的话··在纸上算算····

#1


Convert.ToInt32(string value, int fromBase): 
可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16: 

#2


不知道你说的“二进制流”是什么意思。如果是Stream可读可写的byte[],那么同时你要了解将字符串转换为byte[]时使用的编码,例如UTF8,然后转换:

    Encoding.UTF8.GetString(data);

#3


我这有个图片转成二进制流,再从二进制流转成图片的代码 ,你可以参考下。
#region 取出二进制流图片
 DataTable dtimg = bll.getimgdt(p_num, database);
 byte[] filedata = (byte[])dtimg.Rows[0][0];
 System.IO.MemoryStream ms = new System.IO.MemoryStream(filedata);
 System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
  if (!System.IO.Directory.Exists("d:\\image"))
  System.IO.Directory.CreateDirectory("d:\\image");
  string filename = "d:\\image\\" + dtimg.Rows[0][1].ToString();
 img.Save(filename);
 #endregion
#region 将图片转为二进制流
FileStream fs = File.OpenRead(filename);
byte[]  content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();
#endregion

#4


引用 1 楼 wuyq11 的回复:
Convert.ToInt32(string value, int fromBase):
可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2、8、10及16:

#5


字符串"10"转化后为:0011000100110000
==>
你是转化成的以二进制形式显示的字符串?

#6


官方提供很多方法的,自己通过VS智能感知慢慢找

#7


byte[]   bytes   =   System.Text.Encoding.GetEncoding("GB2312").GetBytes("中文字符串");   
    
  还原:   
  string   str   =   System.Text.Encoding.GetEncoding("GB2312").GetString(bytes);

#8


帮顶……

#9


字符串的转换跟编码相关的.
"比如:字符串"10"转化后为:0011000100110000"
但是如果是 中文或者特殊字符呢?
在不同的编码下 比如UTF8/BIG5/GB2312/... ...等等,转换出的结果都是不一样的.

#10


引用 9 楼 lost_painting 的回复:
字符串的转换跟编码相关的.
"比如:字符串"10"转化后为:0011000100110000"
但是如果是 中文或者特殊字符呢?
在不同的编码下 比如UTF8/BIG5/GB2312/... ...等等,转换出的结果都是不一样的.
1

#11


没事玩的话··在纸上算算····