在a.spx文件中有一段脚本如下,是为了传递数据到b.aspx中作为查询条件
function IMG1_onclick(e)
  {
    var Url= "../Common/b.aspx";
    var Transforms =document.Form1.TxtSearchFile.value;
    var index;
    if(Transforms.length ==1)
    {
    for(index=0;index<1;index++)
    {
      if(Transforms.charCodeAt(index)>0x4E00||Transforms.charCodeAt(index)<0x9FA5)
      {
  
      }
    }
    }
      Url = Url+"?FileName="+Transforms+"&SearchIndex=1&SearchType="+document.Form1.Ddl_choicefile.value;
  e.target="Folders";
    e.href =Url; }
可是数据传递到b.aspx中 会出现
如果传递的是两个中文字符或者英文字母及单词都没有问题
用request.querystring可以获得,但是一旦输入一个中文字符,就会出现解析不了
调试的时候会出现string s =request.querystring["filename"];
结果为:s="?filename=&fileindex=1";
忙了几天都没有弄出来很郁闷呀 希望大虾能够给予帮助,谢谢

解决方案 »

  1.   

    url进行编码
    Server.UrlEncode__------------正解。
      

  2.   

    可是在javascript中能用server.urlEncode()吗?
      

  3.   

    public static string GetEncoding(string inputString) 
    { Regex r = new Regex("charset\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))",
    RegexOptions.IgnoreCase|RegexOptions.Compiled);
    Match m = r.Match(inputString);
    return  m.Groups[1].Value.Replace("\"","").Replace(">","").ToUpper();

    }
    private Encoding encoding;
    string strEncoding = Tools.GetEncoding(buffer);
                    //string strEncoding = "UNICODE";
                    //System.Text.Encoding encoding;
                    if (strEncoding == "UTF-8")
                        encoding = Encoding.UTF8;
                    else if (strEncoding == "UTF-7")
                        encoding = Encoding.UTF7;
                    else if (strEncoding == "UNICODE")
                        encoding = Encoding.Unicode;
                    else
                        encoding = Encoding.Default;