使用Server对象的URL编码和解码
使用Server对象的URL编码和解码
Server对象提供对地址(URL)进行URL编码和解码功能。其中,URL编码功能由UrlEncode()方法实现,URL解码功能由UrlDecode()方法实现。
当URL包含Unicode字符(如中文字符等)时,网页可能会存在潜在的危险。如果使用URL编码功能可以消除因URL中存在的潜在危险。
【示例9-25】 创建了中文字符串chineseString,它的值为"这是一个中文字符串。",并调用UrlEncode()方法对chineseString字符串进行URL编码,然后构建为一个跳转到Dir.aspx页面的新地址(URL),保存为url变量。
- string chineseString = "这是一个中文字符串。";
- string url = "~/Dir.aspx?Value=" + Server.UrlEncode(chineseString);
注意:url字符串(已经经过URL编码,不再包含中文字符串)的值为"~/Dir.aspx?Value= %e8%bf%99%e6%98%af%e4%b8%80%e4%b8%aa%e4%b8%ad%e6%96%87%e5%ad%97%e7%ac%a6%e4%b8%b2%e3%80%82"。
如果要获取经过URL编码之后的URL中的编码前的字符串,则需要使用URL解码功能。该功能由UrlDecode()方法实现。
【示例9-26】 调用UrlDecode()方法对url字符串进行URL解码,并保存为urlwithchinese变量。此时,该变量的值为"~/Dir.aspx?Value=这是一个中文字符串。",并包含中文字符串。
- string urlwithchinese = Server.UrlDecode(url);