3

谷歌浏览器会自动将 URL 中的 unicode 字符串转换成这样的东西;

?querystring=مقالات
?querystring=%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA

我的问题是如何解码代码中的编码文本以进行比较?

if (Request.Url.Query == "?querystring=مقالات")
    //do something
4

2 回答 2

2

看看这些:)

Console.WriteLine(System.Web.HttpUtility.UrlDecode("http://www.google.com/search?q=مقالات"));
Console.WriteLine(System.Web.HttpUtility.UrlEncode("http://www.google.com/search?q=%D9%85%D9%82%D8%A7%D9%84%D8%A7%D8%AA"));
于 2013-05-06T10:41:49.163 回答
1

URL 编码确保所有浏览器都能正确传输 URL 字符串中的文本。

问号(?)、与号(&)、斜线(/)和空格等字符可能会被某些浏览器截断或损坏。因此,这些字符必须在标签或查询字符串中编码,其中字符串可以由浏览器在请求字符串中重新发送。

UrlDecodeHttpUtility.UrlDecode是在运行时从 ASP.NET 应用程序访问该方法的便捷方式。在内部,UrlDecode用于HttpUtility.UrlDecode解码字符串。

以下示例将名为 EncodedString 的字符串(在 URL 中接收)解码为名为 DecodedString 的字符串:

String DecodedString = Server.UrlDecode(EncodedString);
于 2013-05-06T10:43:35.147 回答