文件乱码问题

wujevons 2003-08-27 04:19:16
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是乱码,就是提示保存到哪里的时候,中文文件名乱码
英文数字正常,肯定是哪里需要转一下编码

库中数据正常显示中文
...全文
71 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuike519 2003-08-27
  • 打赏
  • 举报
回复
同意楼上的!是要编码以后才能正确的显示汉字!以前碰见这样的问题就是用这个方法解决的!
acewang 2003-08-27
  • 打赏
  • 举报
回复
用这句话显示中文:
Response.AppendHeader("Content-Disposition","attachment;
filename="+HttpUtility.UrlEncode(sFileName,System.Text.Encoding.UTF8))
wujevons 2003-08-27
  • 打赏
  • 举报
回复
UP

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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