ASP.NET导出到Excel,如果文件名包含字符#或/,则会在弹出“打开/保存”对话框时将其转换为下划线(35;)!
最终文件名=>类别\文件名ASP.NET导出到Excel,如果文件名包含字符#或/,则会在弹出“打开/保存”对话框时将其转换为下划线(35;)!,asp.net,export-to-excel,Asp.net,Export To Excel,最终文件名=>类别\文件名 我会很感激你的帮助,请帮忙 在Windows(或大多数其他操作系统)下,文件名不能包含字符/,因此无法阻止该字符被转换#被大多数浏览器所忽略,其中最奇怪的是IE 内容配置文件名有点有限。非ASCII字符在其中不可靠,根据RFC进行的正确转义也不起作用。如果要将Unicode字符转换为默认下载文件名—或者某些其他标点符号,包括IE中的#,您必须对其进行URL编码,并将其作为路径的尾随部分,忽略内容处置文件名。例如: string filename = "Categor
我会很感激你的帮助,请帮忙 在Windows(或大多数其他操作系统)下,文件名不能包含字符
/
,因此无法阻止该字符被转换#
被大多数浏览器所忽略,其中最奇怪的是IE
内容配置
文件名有点有限。非ASCII字符在其中不可靠,根据RFC进行的正确转义也不起作用。如果要将Unicode字符转换为默认下载文件名—或者某些其他标点符号,包括IE中的#
,您必须对其进行URL编码,并将其作为路径的尾随部分,忽略内容处置文件名。例如:
string filename = "Category#FileName";
response.AddHeader("content-disposition", "attachment; filename=" + filename);
response.ContentType = "text/csv";
response.AddHeader("Pragma", "public");
myscript.aspx:
http://www.example.com/myscript.aspx/foo%23bar.xls
(您仍然不能以这种方式将
/
包含在文件名中,因为web服务器往往会阻止包含%2F的所有URL。在任何情况下,如上所述,您都无法将其与/
一起保存在文件名中。)文件名不能包含Windows(或大多数其他操作系统)下的字符/
,所以你无法阻止那个人被转化#
被大多数浏览器所忽略,其中最奇怪的是IE
内容配置
文件名有点有限。非ASCII字符在其中不可靠,根据RFC进行的正确转义也不起作用。如果要将Unicode字符转换为默认下载文件名—或者某些其他标点符号,包括IE中的#
,您必须对其进行URL编码,并将其作为路径的尾随部分,忽略内容处置文件名。例如:
string filename = "Category#FileName";
response.AddHeader("content-disposition", "attachment; filename=" + filename);
response.ContentType = "text/csv";
response.AddHeader("Pragma", "public");
myscript.aspx:
http://www.example.com/myscript.aspx/foo%23bar.xls
(您仍然不能以这种方式将
/
包含在文件名中,因为web服务器往往会阻止包含%2F的所有URL。在任何情况下,如上所述,您都无法在文件名中使用/
保存它。)遗憾的是,这是IE的一个限制
根据Microsoft的说法,如果在文件附件的文件名属性中使用下列字符,它们将被转换为下划线:
response.AddHeader("Content-Disposition", "attachment");
<左尖括号
>直角支架
\反斜杠
“引号
/斜线
:冒号
|竖杆
?问号
*星号
空间
不幸的是,这是IE的一个局限 根据Microsoft的说法,如果在文件附件的文件名属性中使用下列字符,它们将被转换为下划线:
response.AddHeader("Content-Disposition", "attachment");
<左尖括号
>直角支架
\反斜杠
“引号
/斜线
:冒号
|竖杆
? 问号
*星号
空间
请参见谢谢你!!UrlEncode与“#”配合使用效果很好。非常感谢!啊,.NET的
UrlEncode
对于空格字符可能不合适,但是:它将它编码为+
,而不是%20
,这对于路径组件不太合适。有点遗憾的是,在.NET中没有非表单URL编码方法,但您可以在编码后将+
替换为%20
来手动修复它。是的,Bobince,我也遇到过同样的问题,即空间“+”。然后手动更换。本想回应您之前的建议,但也收到了您的评论:)再次感谢Hanks Bobince!!UrlEncode与“#”配合使用效果很好。非常感谢!啊,.NET的UrlEncode
对于空格字符可能不合适,但是:它将它编码为+
,而不是%20
,这对于路径组件不太合适。有点遗憾的是,在.NET中没有非表单URL编码方法,但您可以在编码后将+
替换为%20
来手动修复它。是的,Bobince,我也遇到过同样的问题,即空间“+”。然后手动更换。本想回应您之前的建议,但也收到了您的评论:)再次感谢