文件乱码问题
SQl server使用IMAGE类型存储文件
上传同时将文件名保存在varchar类型字段中
下载时输出代码:
string sql;
sql="SELECT filedata,filename,filesize,filetype FROM filedata where id = '" + id + "'";
System.Data.OleDb.OleDbConnection Con = new System.Data.OleDb.OleDbConnection(conStr);
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql,Con);
System.Data.OleDb.OleDbDataAdapter apt = new System.Data.OleDb.OleDbDataAdapter(sql,Con);
DataTable dtImage = new DataTable();
apt.Fill(dtImage);
if(dtImage.Rows.Count==0)
return;
image = dtImage.Rows[0][0];
string FileName = dtImage.Rows[0][1].ToString();
string FileType = dtImage.Rows[0][3].ToString();
if (FileType == null || FileType == "")
FileType = "application/x-msdownload";
if(image==DBNull.Value)
return;
Response.ContentType = FileType;
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
byte[] bs=(byte[])image;
this.Response.BinaryWrite(bs);
结果保存时我输出的FileName是乱码,就是提示保存到哪里的时候,中文文件名乱码
英文数字正常,肯定是哪里需要转一下编码
库中数据正常显示中文