webform1.aspx
<asp:datalist id="DataList1" runat="server">
<ItemTemplate>
<asp:HyperLink id="HyperLink1" runat="server" NavigateUrl='<%#DataBinder.Eval(Container.DataItem,"cshopname","WebForm3.aspx?id={0}") %>' >
<%# DataBinder.Eval(Container.DataItem, "cshopname") %>
</asp:HyperLink>
</ItemTemplate>
</asp:datalist>webform3.aspx.csprivate void Page_Load(object sender, System.EventArgs e)
{
con=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["connectionstring"]);
            str=Request.QueryString["id"].ToString();
Response.Write(str);//此时输出时会丢失部分数据??
}
注:
cshopname是个中文字段,在WebForm1.aspx显示的时候,鼠标移上去能正常显示比如
WebForm3.aspx?id=上海大酒店 显示正确但在另一个页面用Request.QueryString["id"]接的时候,经常回发现少了几个汉字(但并不是每个链接都少部分正确,部分错误),这样再去数据库做查询当然有问题  该如何解决呢

解决方案 »

  1.   

    //发送
    <a href='<%#"WebForm3.aspx?au_lname=" + Server.UrlEncode
    (DataBinder.Eval(Container.DataItem, "au_lname").ToString())%>'><%#DataBinder.Eval(Container.DataItem, "au_lname")%></a>//接受
    string str = Server.UrlDecode(Request.QueryString["au_lname"]);
      

  2.   

    UTF-8编码的问题,现象:奇数个汗字最后一个是?
    原因是:此编码每个char对应的byte数不一致.
    amandag(高歌) 的解决方法不错.统一%FFFF化数据,没有汉字,就没有编码问题.
    不过建议新建一个DataTable,将ID列转化成Server.UrlEncode形式,然后绑定新DataTable.
      

  3.   

    通过amandag(高歌)的方法已经解决了  谢谢