广州.NET培训
达内广州.NET培训中心

18087159764

热门课程

.NET知识: url 的编码与解码

  • 时间:2015-11-13
  • 发布:dn
  • 来源:dn

讲解的是: .NET知识: url 的编码与解码。

举例:

aaa.aspx?tag=.net%bc%bc%ca%f5
aaa.aspx?tag=.net%e6%8a%80%e6%9c%af

看起来好像是不一样,其实他们都是对".net技术"进行了UrlEncode,不过一个是GB2312的编码,一个是Utf-8的编码。
如下代码就可以获得上面的编码后效果:

加密方法:


string tmp1 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.GetEncoding("GB2312"));
string tmp2 = System.Web.HttpUtility.UrlEncode(".net技术", System.Text.Encoding.UTF8);

我们实际的Web页面,可能会被其他程序调用。
比如:简体中文操作系统上的一个ASP页面,需要向一个ASP.net页面传递一个带中文的参数。
默认情况下,简体中文操作系统上, ASP 的 Server.UrlEncode 方法会把中文以GB2312的编码进行编码,
但是默认情况下,ASP.net的页面是采用的UTF-8编码。
这种情况下,你在用 Request.QueryString["Tag"] 接受值的时候会接受不到中文信息,单步调试看到的是乱码。
这时候虽然用Request.QueryString["Tag"] 接受的是乱码,但这时候的Url并不是乱码。

解决方法就是自己分析Url中的参数,然后对参数的值按照 GB2312的编码反解密,而不是用.net 默认的Utf-8的编码反解密。

URL解密的方法:


if (Request.QueryString["url"] != null)
{
string url = Server.UrlDecode(Request.QueryString["url"].ToString());
this.txtAddress.Text = url;
}

上一篇:[达内知识].NET技巧集锦
下一篇:Red Hat与微软将合力构建企业级Linux版.NET

.NET对于新手该如何下手

电脑编程入门学什么?5分钟让你掌握core技术!

[达内知识].NET技巧集锦

选择城市和中心
贵州省

广西省

海南省