文件名中的空格导致问题

时间:2011-05-24 07:20:09

标签: c# asp.net whitespace

FileInfo[] FileList1 = Dir.GetFiles("*.doc", SearchOption.AllDirectories);
foreach (FileInfo FI in FileList1)
{
    Response.Write(
        "<td><a href= view5.aspx?file=" + strheadlinesid + "\\" + 
        FI.Name + " target=_self;> " +FI.Name + "</a></td>");
}

当我尝试用空格打印文件名时,它会在文件名中的空格位置添加“#”,这会给我带来麻烦。 任何人都可以告诉解决方案

2 个答案:

答案 0 :(得分:5)

URL编码可确保所有浏览器都能正确传输URL字符串中的文本。某些浏览器可能会截断或损坏诸如问号(?),符号(&amp;),斜杠标记(/)和空格等字符。因此,这些字符必须编码在标签或查询字符串中,其中字符串可以由浏览器在请求字符串中重新发送。

fileName = HttpServerUtility.UrlEncode(fileName);

答案 1 :(得分:2)

尝试使用引号!

FileInfo[] FileList1 = Dir.GetFiles("*.doc", SearchOption.AllDirectories);
foreach (FileInfo FI in FileList1)
{
    Response.Write(
        "<td><a href=\"view5.aspx?file=" + strheadlinesid + "\\" + 
        FI.Name + "\" target=\"_self\"> " +FI.Name + "</a></td>");
}