我有一段程序是这样子:1.aspx:
<asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="SearchResult" HeaderText="English String"HeaderStyle-Font-Bold="True" HeaderStyle-Font-Name="Arial" HeaderStyle-HorizontalAlign="Center" DataTextField="SearchResult" DataTextFormatString="{0:c}" DataNavigateUrlFormatString="DetailContent.aspxSearchResult={0}" ItemStyle-Font-Underline="False">
<ItemStyle Font-Size="10pt" Font-Names="Verdana" ForeColor="#0066CC" Font-Underline="False"></ItemStyle>
</asp:HyperLinkColumn>然后传到2.aspx上用strtemp = Request.QueryString("SearchResult").ToString得到的是缺少字符的,因为我传递的完全都是中文,所以有人说要用转码Server.UrlDecode
我知道编码时传递用 server.urlencode("")
解码时用server.urldecode("")可我对web开发实在不熟悉,也不知道加在哪里,用了很多方法都不行,各位大虾谁能帮帮小妹我啊,谢谢拉

解决方案 »

  1.   

    你写错了吧,中间少了个?号DetailContent.aspxSearchResult={0}" 应该是
    DetailContent.aspx?SearchResult={0}"
      

  2.   

    对,这个没关系,我漏打了啊,关键是编码时传递用 server.urlencode("")
    解码时用server.urldecode("")这段代码放在哪里呢
      

  3.   

    记得根本不需要解码,直接用Request.QueryString取就行了。但server.urlencode只能对参数编码哈,不是对整个URL编码哟
       另外如果是服务器端生成的连接,记得是会自动进行URL编码的(好象是哈)
      

  4.   

    把<asp:HyperLinkColumn 改为:<asp:TemplateColumn HeaderText="English String">
    <ItemTemplate>
    <asp:HyperLink id="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%# "DetailContent.aspx?SearchResult="+Server.UrlEncode(DataBinder.Eval(Container.DataItem, "SearchResult").ToString())%>'>
    <%# DataBinder.Eval(Container.DataItem, "SearchResult") %>
    </asp:HyperLink>
    </ItemTemplate>
    </asp:TemplateColumn>---------------------------------------
    然后,取值时用:
    dim strtemp as string = Server.UrlDecode(Request.QueryString("SearchResult"))
      

  5.   

    编码和解码我一般都写在后台,你参考下:编码
    this.Response.Redirect(string.Format("DetailContent.aspx?SearchResult={0}",this.Server.UrlEncode(字段));解码
    string s = this.Server.UrlDecode(this.Response.QueryString["SearchResult"]);
      

  6.   

    我最近也碰到过此类问题,在microsoft的fix里一个说明但下载需要买服务的,我碰到的是querystring中使用中文,如果中文较长,可能取值就不对会把下一个querystring以?xh的形式包含进来我现在都把它改成英文了,看似问题好像没有了,你试试看
      

  7.   

    dongyue82(走路像猫不摔跤) 老大
    我很想写在后台,不过我是datagrid里面超链接,这个this.Response.Redirect写在哪里呢
    望指教,谢谢