举例:

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 url 的编码与解码的更多相关文章

  1. url在线编码和解码

    在工作中,经常遇到encode之后的url.想查看里面的某个参数的时候,很不直观.今天在网上搜了一下对url在线编码和解码的网站.对我来说,使用起来很方便.而且这个网站里面,不仅仅有对url的编码和解 ...

  2. URL的编码和解码

    URL的编码和解码 参考:阮一峰--关于URL编码 1 为什么要URL编码 在因特网上传送URL,只能采用ASCII字符集 也就是说URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和 ...

  3. java中URL 的编码和解码函数

    java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascri ...

  4. javascript对url进行编码和解码

    这里总结下JavaScript对URL进行编码和解码的三个方法. 为什么要对URL进行编码和解码 只有[0-9[a-Z] $ - _ . + ! * ' ( ) ,]以及某些保留字,才能不经过编码直接 ...

  5. .NET Core中如何对Url进行编码和解码

    我们在.NET Core项目中,可以用WebUtility类对Url进行编码和解码,首先我们要确保项目中引入了nuget包:System.Runtime.Extensions 当然这个nuget包默认 ...

  6. 在线url网址编码、解码

    >>在线url网址编码.解码<<

  7. JS对url进行编码和解码(三种方式区别)

    Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...

  8. URL地址编码和解码

    0. 参考 [整理]关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode) python3中的urlopen对于中文url是如何处理的? 中文URL的编码问题 ...

  9. js 对url进行编码和解码的三种方式

    一.escape 和 unescape escape 原理:对除 ASCII字母.数字.标点符号(@ * _ + - . /) 以外的字符进行编码 .编码的字符被替换成了十六进制的转义序列 不编码的字 ...

  10. js对url进行编码和解码

    编码 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. 例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码. 1. ...

随机推荐

  1. ubuntu Server 设置主机静态 ip地址

    ubuntu Server 设置主机静态 ip地址 1:先输入 ifconfig 查看当前网络配置 2:然后关闭 eth0 网卡 sudo ifdown eth0 3:配置静态ip sudo vim ...

  2. 【JavaScript】实现复选框的全选、全部不选、反选

    以较为简洁的程序实现复选框的全选.全部不选.反选 操作. 并且将可变的部分设置为JS的参数,以实现代码复用. 全选和全不选 第一个参数为复选框名称,第二个参数为是全选还是全部不选. function ...

  3. Java从零开始学二十三(集合Map接口)

    一.Map接口 Collection.Set.List接口都属于单值的操作,即:每次只能操作一个对象,而Map与它们不同的是,每次操作的是一对对象,即二元偶对象,Map中的每个元素都使用key à v ...

  4. 1z0-052 q209_8

    8: Note the following structures in your database server: 1. Extents 2. OS Blocks 3. Tablespace 4. S ...

  5. Spring Web MVC 原理学习(下)

             接着上一篇博客,这一篇.我们依据一个简单的demo,来对SpringMVC的原理再次学习:   一.配置web.xml                   我们新建一个web项目.在 ...

  6. List(T)类的方法

    List<T>.Clear 方法 List<T>.RemoveAll 方法 http://msdn.microsoft.com/zh-cn/library/s6hkc2c4(v ...

  7. eclipse Java代码折叠工具

      eclipse Java代码折叠工具 CreateTime--2018年5月17日15点09分 Author:Marydon 1.问题描述 eclipse自带的代码折叠工具,无法折叠try{}ca ...

  8. 从Java的堆栈到Equals和==的比較

    认识Java中堆和栈 栈与堆都是Java用来在Ram中存放数据的地方. 与C++不同.Java自己主动管理栈和堆,程序猿不能直接地设置栈或堆. Java的堆是一个执行时数据区,类的对象从中分配空间.这 ...

  9. java Properties的用法

    Properties是一个特殊的Map,因为和IO流牵扯到了一块…… import java.io.BufferedReader;import java.io.File;import java.io. ...

  10. 【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

    [VMware虚拟化解决方案]配置和部署VMware ESXi5.5 时间 2014-04-08 10:31:52  让"云"无处不在的博客原文  http://mabofeng. ...