我把那个DataList的.aspx代码帖出来:
<asp:DataList Width=100% ItemStyle-Width=125px  ID="m_h" RepeatColumns=2 Runat="server" ItemStyle-Font-Size=13px> <ItemTemplate>       <a href='m_rank.aspx?m=<%#DataBinder.Eval(Container.DataItem,"majorName")%>' target="_self">            <%#DataBinder.Eval(Container,"DataItem.majorName")%>
               </a>   
         </ItemTemplate>
</asp:DataList>
就是那个链接那里,这样传的话当然也可以,但是我的项目采用了UTF-8编码,在m_rank.aspx接收到的m的值可能会出现与原来的值不同的情况,虽然可以把编码改成GB2312,但这很容易出现乱码,总不能让用户输入的时候注意不要输入UNICODE字符吧?我知道可以用Server.UrlEncode对查询串进行编码,但是这里的查询串是绑定的数据,不是一般的静态的数据,怎样进行编码?谁能帮忙解决一下,感激不尽。

解决方案 »

  1.   

    <a href='m_rank.aspx?m=<%#Server.UrlEncode(DataBinder.Eval(Container.DataItem,"majorName").ToString())%>' target="_self">
      

  2.   

    <a href='m_rank.aspx?m=<%# Server.UrlEncode(DataBinder.Eval(Container.DataItem,"majorName").ToString())%>' target="_self">
      

  3.   

    如果指定其它的编码方式,需要这样写
    <a href='m_rank.aspx?m=<%# System.Web.HttpUtility.UrlEncode((DataBinder.Eval(Container.DataItem,"majorName")).ToString(),System.Text.Encoding.UTF8)%>' target="_self">