具体情况是这样:我做个文件下载的功能,别人发送请求过来,我根据对方的请求返回一个链接给他,他根据这个链接直接下载文件,现在对方要求下载的文件名中必须要有中文说明,但是我尝试用中文了,但是调试的时候发现下载时中文解析出来是乱码,对方说这个能解决,搜了下没找到具体的方案,这是我下载的源代码,是用C#写的,具体怎么实现中文地址的传递呢:    public partial class download_cim : System.Web.UI.Page
    {
        public static string GetUrl(string file_name)
        {
            return JWebConfig.GetUrl(string.Format("/801_download/download_cim.aspx?file_name={0}", file_name));
        }        protected void Page_Load(object sender, EventArgs e)
        {
            if(Request.QueryString["file_name"] == null)
            {
                return;
            }            string file_name;
            file_name = Request.QueryString["file_name"].ToString();            if (file_name == "" || file_name == null)
            {
                return;
            }            string remote_path = @"\data\graph\cim\";            JFileStoreManager client = new JRemoteFileStoreManager();            byte[] data = client.GetFileContent(string.Format("{0}{1}", remote_path, file_name));            Response.Clear();            Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(file_name));            Response.ContentType = "application/octet-stream";
            
            Response.OutputStream.Write(data, 0, data.Length);
            Response.End();
        }
    }当file_name 是中文时就是乱码,就无法解析,这个怎么弄呢?

解决方案 »

  1.   

    能给个具体参考  或者讲的详细点么  urlencode?怎么弄呢
      

  2.   


    System.Web.HttpUtility.UrlEncode((string)keywords, System.Text.Encoding.GetEncoding("UTF-8"))
      

  3.   

    是不是传递前先加密,下载解析后在解码,这里的keywords是指file_name(中文名称部分)吧,不需要把所有uri都加密吧
      

  4.   

    如果你的页面编码是UTF-8的话不需要解码,不需要都转码,只是中文部分就行。
      

  5.   

    System.Web.HttpUtility.UrlEncode((string)
    System.Web.HttpUtility.UrlDecode((string)
      

  6.   

    string str= Server.UrlEncode("这里是你要用的中文") ;
    后面一直用 str  就可以了