1

データベースに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);

しかし、上記のどれも私に読みやすい文字列を返しませんでした。何か案は?

4

1 に答える 1

7

オブジェクトのBinaryWriteメソッドを探しているようです。Response

AKA:

 Response.BinaryWrite(content);
于 2012-04-16T20:07:55.810 に答える