将字节数组转换为字符串在c#中不起作用

Posted

技术标签:

【中文标题】将字节数组转换为字符串在c#中不起作用【英文标题】:converting byte array to string not working in c# 【发布时间】:2012-04-28 04:20:14 【问题描述】:

我在数据库中有一个包含 varbinary 数据的 AttachmentFile 列。在 c# 中,我将它存储在一个 byte[] 数组中。我需要将此内容作为字符串显示给用户。我尝试了几种不同的方法将此字节数组转换为字符串,但似乎没有任何效果。

这就是我想要做的 -

while (rdr.Read())

    string name = rdr["AttachmentFileName"].ToString();
    string mime = rdr["AttachmentMIMEType"].ToString();
    byte[] content = (byte[])rdr["AttachmentFile"];

    string contentStr = (???)ConvertToString(content);
    r.AddHeader("Content-Disposition", "attachment; filename=" + name);
    r.ContentType = mime;
    r.Write(contentStr);

这是我迄今为止尝试过的 -

string contentStr = Encoding.Default.GetString(content, 0, 10000);
string contentStr = Encoding.UTF8.GetString(content, 0, 10000);

content = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"), Encoding.UTF8, content);
string contentStr = Encoding.UTF8.GetString(content, 0, 10000);

System.Text.Encoding enc = System.Text.Encoding.ASCII;
string contentStr = enc.GetString(content);

string contentStr = System.Convert.ToBase64String(content);

但以上都没有给我一个清晰的字符串。有什么想法吗?

【问题讨论】:

【参考方案1】:

看起来您正在寻找Response 对象上的BinaryWrite 方法。

又名:

 Response.BinaryWrite(content);

【讨论】:

以上是关于将字节数组转换为字符串在c#中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Astyle 在 Windows 中不起作用

访问更新语句在 C# 中不起作用

标准偏差计算在 C# 中不起作用?

xslt:css在html页面中不起作用

为啥 datetime.strptime 在这个简单的例子中不起作用?

拖放在 C# 中不起作用