如何将二进制流转换成字符串?

hyphappy 2004-07-04 05:21:27
我从本地上传一个XML文件,以二进制的形式存储到了数据库。当我将该文件从数据库读出来,然后利用XmlDocument.load(xmlStream)的时候,提示我缺少根元素。我发现xmlStream是一个二进制流,XmlDocument对象无法解析。因此现在要有办法把xmlStream还原成xmlDocument能够解析的字符串流,请各位大虾不吝赐教!!
...全文
598 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
coollzh 2004-07-05
  • 打赏
  • 举报
回复
Encoding.Default
Encoding.GetEncoding("GB2312")
eTopFancy 2004-07-05
  • 打赏
  • 举报
回复
Encoding.Default
hyphappy 2004-07-05
  • 打赏
  • 举报
回复
我的代码如下:浏览器里什么都没有输出,但是察看源文件的时候,有大量的空白,这些空白的大小刚好和流的大小一样。
XmlDocument xmlDoc = new XmlDocument();
byte[] buffer = new byte[xslFileStream.Length];
xslFileStream.Read(buffer,0,buffer.Length);
System.Text.Encoding enc = System.Text.Encoding.GetEncoding("GB2312");

string xmlContent = enc.GetString(buffer);
Response.Write(xmlContent);

Response.End();
亲密数 2004-07-05
  • 打赏
  • 举报
回复
xml保存二进制文件是把它转化为可视字符然后保存的

一般base64编码,还有16进制等
hyphappy 2004-07-04
  • 打赏
  • 举报
回复
我尝试过所有的Encoding好像都是同样的结果
速马 2004-07-04
  • 打赏
  • 举报
回复
得看确定存入数据库的那个xml文件是以什么方式保存的
然后指定这个Encoding读出来
hyphappy 2004-07-04
  • 打赏
  • 举报
回复
byte[] buffer = new byte[xslFileStream.Length];
xslFileStream.Read(buffer,0,buffer.Length);
string xmlContent = System.Text.Encoding.UTF8.GetString(buffer);
我发现xmlContent是"\0\0\0\0\0\0\0\0\0\.....",根本不是原来xml文件的内容。
紧急求救!!!
hyphappy 2004-07-04
  • 打赏
  • 举报
回复
好像不行
Chimeny 2004-07-04
  • 打赏
  • 举报
回复
试试:string xmlContent = Encoding.Default.GetString(xmlStream);

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧