问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C# Byte[]转换成string的问题...高手来起...在线=回答...

发布网友 发布时间:2022-04-24 13:21

我来回答

5个回答

热心网友 时间:2023-10-14 06:38

byte数组不一定能转换为字符串。

byte数组是一个物理的存贮概念,而字符串是有文化意义的。因此byte到string的转换需要指定一种编码方式。

但是,图片里的bytes根本就不是一种“文字”,你如何能把它们转换为字串?
图片里的bytes是对像素的存贮,是二进制的数据。

如果非要转换为文字,也有办法。在通过电子邮件来传送文件时,由于电子邮件协议一开始只考虑了文字的传送,而不支持二进制数据,因此,对于二进制数据,就有人发明了多种把二进制数据编码为普通文本,以及从这种文本编码转换回二进制数据的方案。

其中用得最广泛的,就是base64编码了。这也正是你需要的答案。

方案就是:把你的byte array用Convert.ToBase64String()方法转换为文本,这种文本看起来是没有意义的,但是它是纯英文文本,可以保存在text字段里。
需要恢复时,就用Convert.FromBase64String(),从文本转回到二进制数据。

热心网友 时间:2023-10-14 06:38

你这里是不能用 filetext = System.Text.Encoding.Default.GetString(aa)这样的方法转字符串的。。。
那个例子来说。
加入你的aa中的内容是aa={65,66,67,00,65};
你用上面的转出来的字符串就是"ABC"
这种转换方法是将每一个元素转成对应的字符。。。而字符串的结束符就刚好是\00所以就会出现你说的那种,不会转换完全,在\00之后的内容都被截断了。。。

你这种的问题的解决办法是
想办法让filetext中的内容是"6566670065";这个样子。。。

你可以用
string s;
foreach(byte b in aa)
{
s=b.ToString();
if(s.Length!=2)
{
s="0"+s;
}
filetext+=s;
}
这样得到的结果就是"6566670065";
要使用的时候,就是2位一截转存到byte[]中就可以了。。。
byte[] aa=new byte[filetext/2];
for(int i=0;i<filetext/2;i=i++)
{
aa[i]=byte.Parse(filetext.SubString(i*2,2));
}
这样得回的结果就是aa={65,66,67,00,65};了。。。

热心网友 时间:2023-10-14 06:38

用System.Text.Encoding.ASCII.GetString试试
Default默认的一般是unicode
如果这个解决了,后面的问题就一并解决了
至于第四个问题,你去了解一下BMP位图文件的格式就明白了。

热心网友 时间:2023-10-14 06:39

这个问题,我也遇到过,好像不行,我就是从图片流转化为二进制数组,在还原为流,显示图片都不行。何况字符串

热心网友 时间:2023-10-14 06:40

直接把字节数组存到text字段不就行了
c# byte数组转string

首先要先知道你的byte数组是基于什么编码方式生成的,然后才能根据这种编码方式转回string 例:byte[] bytes = System.Text.Encoding.UTF8.GetBytes("要转换成byte数组的字符串");//这里根据utf-8的编码形式将字符串转换成byte流,如果想转换回正确的字符串,也必须是utf-8的编码,否则转换成功也是乱码...

c#怎么将byte数组转成string

首先要先知道你的byte数组是基于什么编码方式生成的,然后才能根据这种编码方式转回string 例:byte[] bytes = System.Text.Encoding.UTF8.GetBytes("要转换成byte数组的字符串");//这里根据utf-8的编码形式将字符串转换成byte流,如果想转换回正确的字符串,也必须是utf-8的编码,否则转换成功也是乱码...

C#如何把byte转换为String类型输出的?

byte b = 34;// 转换成十进制格式表示的字符串string s = b.ToString();Console.WriteLine(s); // 转换成十六进制格式表示的字符串s = b.ToString("x");Console.WriteLine("0x{0}", s);【例2】byte[] array = { 1, 2, 3, 4, 5, 6, 7 };string s = string.Empty;foreach ...

c# byte [] 转string,怎么转

byte[] bt = new byte[] { 10, 11, 33, 44, 2 };string str=string.Join(",",bt.Select(t=&gt;t.ToString()).ToArray());Console.Write(str);

C#中如何将byte[]转化为字符串!!!

C#中将byte[]转化为字符串可以参考以下的代码://字符串转byte stringStringMessage="HowAreyou?";Console.WriteLine("{0}",StringMessage);System.Text.ASCIIEncodingASCII=newSystem.Text.ASCIIEncoding();Byte[]BytesMessage=ASCII.GetBytes(StringMessage);//byte转字符串 Byte[]BytesMessage;System....

c#怎样将byte数组转化为string

c#中byte数组转化char数组方法如下://定义一个byte数组,并初始化 byte[]b=new byte[5]{0x01,0x02,0x03,0x04,0x05};//用encoding的ascii方法的getchars函数依次取得b并转换成char数组。char[]c=encoding.ascii.getchars(b);

c#中如何将byte数组转换成string从而在textbox中显示出来?

1.byte[] byteArray = System.Text.Encoding.Default.GetBytes( str );反过来也是一样,把byte[]转成string:string str = System.Text.Encoding.Default.GetString( byteArray );其实,在System.Text.Encoding class中,还有很多其它有用的方法,像GetChars,从一个byte[]转成一个char[],等等,...

C#字节数组转换string长度问题

string friendNumber = "4473117";byte[] qqNumberBytes = Encoding.UTF8.GetBytes( friendNumber );byte[] msgBody = new byte[ 20 ];qqNumberBytes.CopyTo( msgBody, 0 );MessageBox.Show( Encoding.UTF8.GetString( msgBody ) );PS:如果统一使用UTF32的话,你的20个字节恐怕不够装,因为...

C#字节数组转换string长度问题

字符在c#中很容易转化成字节数组的!但字符串可不同的编码下有不同的编码方式,而字节就是一个字节,在任何编码下都是相同的,所以在转化之前我们必须先了解string是在什么样的编下。如果是在utf-8编下的情况下,我们可以使用 byte[]buffer = encoding.utf8.getbytes("要转化的字符串");如果事先...

c# byte[] 到string

{ string x="";byte[] b = new byte[] { 0x1f, 0x1e, 0xcc };for (int i = 0; i &lt; b.Length; i++){ short c= Convert.ToInt16(b[i]);x += From10To16(c) + "-";} if (MessageBox.Show(x.TrimEnd('-')) == DialogResult.OK) { this.Close(); };} } } ...

int转换成string 将string强制转换为int c#string转int string转换为long string char 互相转换 怎么把string转化为int int转为string byte数组转为string c++ int转string
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
前端专题:Form表单详解 2014年广西西林县事业单位招聘考试专业限制 老公在外面有女人我该怎么办 布老大网站简介 女方陪嫁财产是否属于夫妻共同财产 怎么能看出老公外面有人了 ...所以他每晚回家都会问一句干嘛去了?可他的回答全是谎话,这是_百度... 老公出远门回来第一晚不想是不是出轨了? 双控开关怎么安装接线,双开双控开关怎么接线_双控开关怎么接线_双控... GB和GB/ Q有什么区别? 每天的工作都很繁琐,该如何有效的提高工作效率呢? 求教String转换为byte类型十六进制数,在线等 如何在工作中提高自己的工作效率? C# 字符如何转变为字节,在线等 很急 谢谢 在线等!!!java 如何将字符串转换成十六进制? 字节和G怎么换算? 十六进制到字节的转换 字节,b,KB,GB怎么换算的 四川成都将于29日启动臭氧黄色预警,这意味着什么? 嗯我想我的位置在不断地移动能不能够这样才能够收到实时实地的天气预报 今天郫都区会下新民场镇会下雨吗 2o20年6月11号郫都区现在在下雨吗? 2018年郫都县11月份的天气湿度是多少 郫都区白天天气,夜间天气怎么样 青岛尤尼泰振灏税务师事务所有限公司怎么样? 灏腾国际贸易(上海)有限公司闵行分公司怎么样? 我想去古镇木渎和周庄玩玩,我该做些什么准备? 苏州的古镇水乡哪一个最值得去? 苏州有哪些古镇?最著名的是哪个? 说一说,你在苏州去过哪些好玩的地方? 作为管理者如何提高员工工作效率? 如何提高工作效能 中国影响力最大的摄影大赛和海报设计大赛名单、参赛条件、比赛时间 java byte转换成字符串? 如何提升工作效率 如何在Byte 和 Hex 之间相互转换,在线等 学生会摄影部主要负责什么工作? 怎么将4字节16进制转化成浮点数 黑天工作室的团队介绍 文晖中学的所获荣誉 1 byte 等于多少KB 、、24969192813byte 等于多少G? 在线等! 如何提高公司的工作效率 为什么电竞行业幕后工作者没有职业选手赚得多,比如程序员,平面海报设计,产品宣传策划,摄影、赛事执行 如何提高工作效率 提高工作效率的方法技巧 用图怪兽设计了一个海报,字体是图怪兽的。拿去参加一个海报设计比赛,需要支付版权费吗? 大学宣传部能举办一些什么特色活动 什么叫景别 , 景别又有哪几种。 什么是景别? 什么是景别,拍摄人物时,远、全、中、近、特景如何拍摄? 拍人像的5种景别构图方法?