string filename = @"file:///\\U:\\PM\\PM_DWG\\A & A Optical\\up";
            Response.Write("<a  href=javascript:window.open('"+filename+"')>打开</a>");
鼠标移到到 打开 显示 javascript:window.open('file:///\\U:\\PM\\PM_DWG\\A  后面就没有了
原因是主要是文件目录名称中有&或者是空格符号,如果把 A & A Optical 改为没有&符号和空格的一个字符就可以,请问要保留文件目录的&,上面代码怎么改, 如果文件目录还有英文单引号(’)的怎么办?

解决方案 »

  1.   

    &用ASCII编码替换 空格应该没有影响
    将&换成&amp;
      

  2.   

    try:           string filename = @"file:///\\U:\\PM\\PM_DWG\\A & A Optical\\up";
               Response.Write("<a  href=javascript:window.open('" + Server.HtmlEncode(filename) + "')>打开</a>");
      

  3.   

    用"括起你的属性值,html代码写标准点就好了,如果有',可以使用js的转义string filename = @"file:///\\U:\\PM\\PM_DWG\\A & A Optical\\up";
    Response.Write("<a  href=\"javascript:window.open('"+filename+"')\">打开</a>");filename = @"file:///\\U:\\PM\\PM_DWG\\A & A\'Optical\\up";//使用转义
    Response.Write("<a  href=\"javascript:window.open('"+filename+"')\">打开</a>");
      

  4.   

    和空格没关系吧,我这里测试都没问题,你的属性值用""括起没。。要按照xml的标准来写html<%@ Page Language="C#" debug="true"%>
    <%
    string filename = @"file:///D:\\Documents and Settings\\Administrator\\1\'1.txt";//修改为我机子上的,不过这样没有权限,通过http访问本地访问是不允许的。不过你可以保存html代码到本地,直接打开就可以访问本地的文件了
    Response.Write("<a  href=\"javascript:window.open('"+filename+"')\">打开</a><br/>");filename = @"file:///\\U:\\PM\\PM_DWG\\A & A\'Optical\\up";//使用转义
    Response.Write("<a  href=\"javascript:window.open('"+filename+"')\">打开</a>");%>
    结果html<a  href="javascript:window.open('file:///D:\\Documents and Settings\\Administrator\\1\'1.txt')">打开</a><br/><a  href="javascript:window.open('file:///\\U:\\PM\\PM_DWG\\A & A\'Optical\\up')">打开</a>