终于解决了 .NET 2.0 的URL解码问题

现在的接口需要HTTP的处理,有很多需要处理提交的URL,并且要接收URL。
之前一直使用英文,没有发现什么问题,这次测试了一下中文,问题就大了!!!!

用IE提交的中文参数,在VS.NET 2k5 里面怎么样测试都是乱码,也上网查了很多资料,还是搞不定。
我也知道VS.NET 2k5 的默认编码是Unicode,但是转换GB2312也很麻烦,不是好办法。

又看到如果去Request.URL的话就可以取到中文了,于是写了处理URL参数的功能。
但是还是有乱码。。。。郁闷很长时间

最后看到了Request的编码设置,查看了一下编码的设置,默认是Unicode,很对。
设置成GB2312,居然就变成了中文,哈哈,看来默认提交的URL是Unicode,但是显示还是需要GB2312才正常。

于是又去掉处理参数功能,惨,又是乱码!!!

看来还是需要取URL才行啊。。。

一下是部分代码:

        //处理Request,解决乱码!!!
        Request.ContentEncoding = System.Text.Encoding.Default;
        
        string strUrl = Request.Url.ToString().Substring(Request.Url.ToString().IndexOf("?") + 1);
        strMessage = GetArgs("message", HttpUtility.UrlDecode(strUrl));

    private string GetArgs(string strArgName, string strUrl)
    {
        //处理Request,解决乱码!!!
        string strArgValue = "";
        string[] strList = strUrl.Split('&');
        int intCount = strList.Length;
        for (int i = 0; i < intCount; i++)
        {
            int intPos = strList[i].ToString().IndexOf("=");
            if (intPos == -1) continue;
            string strListArgName = strList[i].ToString().Substring(0, intPos);
            if (strListArgName == strArgName)
            {
                strArgValue = strList[i].ToString().Substring(intPos + 1);
            }
        }
        return strArgValue;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值