using System.Web;private void button1_Click(object sender, System.EventArgs e)
{
   string str="张三";
   str=System.Web.HttpContext.Current.Server.UrlEncode(str);//报错:未将对象引用设置到对象的实例
}项目添加了 System.Web.dll的引用。但总是报错,为什么呢?

解决方案 »

  1.   

    这个好像是str上面有问题吧,具体的这样看不出来
      

  2.   

    调试并没有错误啊
    是否没有using 相应的命名空间
      

  3.   

    做了个实验,没有任何错误:using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace Test
    {
    /// <summary>
    /// WebForm3 的摘要说明。
    /// </summary>
    public class WebForm3 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } private void Button1_Click(object sender, System.EventArgs e)
    {
    string str = "张三";
    str = Server.UrlEncode(str);
    Response.Write(str);
    }
    }
    }楼主再试试
      

  4.   

    楼主这段代码是用在web程序里吗?如果不是肯定会出错,找不到http的上下文的。不能说引用了System.Web后里面的东西都是可以用的。
      

  5.   

    同意楼上
    可改为str=HttpUtility.UrlEncode(str);
      

  6.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=YUEMA9OS-W1DN-4KIS-8RIE-S742LLJ91L6Q
      

  7.   

    是c#.net 应用程序窗口环境谢谢xlshen_lxz() 。不过我这边确无法通过。按你用的Server.UrlEncode(str),则编译不能通过,报错:“error CS0246: 找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)”我搜索网上资料,有很多是采用你这样方法,为什么我这边就不行啊
      

  8.   

    net_lover(【孟子E章】) 引用的网址中例题问题是不能解决问题,比如“我是中文”,百度编码码为:“%CE%D2%CA%C7%D6%D0%CE%C4”,而你这程序编码码为:“%e6%88%91%e6%98%af%e4%b8%ad%e6%96%87”。我昨天刚好做过类似东西,后这种解码加入url中,对方服务器是无法正确识别的。所以我才改用Server.UrlEncode(),但程序报错。
      

  9.   

    System.Web.HttpUtility.UrlEncode(str)依旧不行。System.Web.HttpUtility.UrlEncode("我是中文")结果还是:%e6%88%91%e6%98%af%e4%b8%ad%e6%96%87  
      

  10.   

    百度把:%e6%88%91%e6%98%af%e4%b8%ad%e6%96%87  解释成:"鏂版儬鐗圭数鑴"呵呵
      

  11.   

    默认的是用UTF8,指定一下:
    System.Web.HttpUtility.UrlEncode(str,System.Text.Encoding.GetEncoding("GB2312"));