您可能不了解的 QueryString-UrlEncode 与 UrlPathEncode 的区别

作者:vkvi 来源:千一网络(原创) 日期:2012-6-25

System.Web.HttpUtility.UrlEncode 与 System.Web.HttpUtility.UrlPathEncode 两个的区别从微软官方的解释来说让人莫名其妙:对 URL 字符串进行编码;对 URL 字符串的路径部分进行编码。

下面用示例加白话进行一些区别解释:

示例

结果

http%3a%2f%2fwww.cftea.com%2f%e6%90%9c%2f%3fq%3d%e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c
http://www.cftea.com/%e6%90%9c/?q=千一网络
%e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c+%26%22
%e5%8d%83%e4%b8%80%e7%bd%91%e7%bb%9c%20&"

根据结果,我们可以得出两个区别

一是在 UrlEncode 看来,传入的参数是 QueryString 的参数值,都需要编码;而 UrlPathEncode 只编码 Url 的路径部分,不编码 QueryString 部分,如果传入的参数不像一个 URL,那么就当作 Url 的路径部分。

二是特殊字符对待上的区别,UrlEncode 将空格编码为 +,&、" 分别编码为 %26、%22;而 UrlPathEncode 则编码空格为 %20,&、" 却不编码。

用途

UrlEncode 主要是用于对 QueryString 的参数值进行编码。

你前面那位网友看了:ASP.NET C# 用 Print2Flash 实现在线预览 Word、PPT、PDF 等

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
标题:必填
内容: