程序里有Ajax,编码是UTF-8(不想改,改了会出错),在传递中英文交替的参数时,后面的汉字会乱码。
  
  HyperLink.DataNavigateUrlFields = New String() {"name"}
  HyperLink.DataNavigateUrlFormatString = "Details.aspx?name={0}"
  
  我想把最后的{0}用GB3212编码  若用 HttpUtility.UrlEncode("name", Encoding.GetEncoding("GB2312")),或其他……,  编码与解码我该如何去写?

解决方案 »

  1.   

    html代码:<asp:HyperLinkField DataNavigateUrlFields="name" DataNavigateUrlFormatString="~/Details.aspx?name=<% HttpUtility.UrlEncode(%>{0}<%)%>"
      

  2.   

    楼上漏了一些,应该是:
    <asp:HyperLinkField DataNavigateUrlFields="name" DataNavigateUrlFormatString="~/Details.aspx.aspx?name=<% HttpUtility.UrlEncode(%>{0}<% )%>" DataTextField="name" />
      

  3.   

    我的控件是通过代码添加的,找不到html。
      

  4.   

      如何设置?Dim HyperLink As HyperLinkField = New HyperLinkField
    GridView1.Columns.Add(HyperLink)  其他如何写?
      

  5.   

    代码添加差不多!!
    HyperLink.DataNavigateUrlFormatString = "Details.aspx?name="+HttpUtility.UrlEncode(你的数据变量) ;
    代码添加{0}就不好用了,这里要通过FindControl找到你需要的字段!!