在 ASP 中:
Server.URLEncode("+&(). -*<>/\|")
' returns %2B%26%28%29%2E+%2D%2A%3C%3E%2F%5C%7C
在 ASP.NET 中
Uri.EscapeDataString("+&(). -*<>/\|")
// returns %2B%26().%20-*%3C%3E%2F%5C%7C
HttpUtility.UrlEncode("+&(). -*<>/\|")
// returns %2b%26().+-*%3c%3e%2f%5c%7c
是否有任何优雅的方法可以在 ASP.NET 中模仿旧的 ASP 行为?
最佳答案
您可以使用正则表达式来匹配要转换的字符,并使用 lambda 表达式来创建十六进制代码:
string input = @"+&(). -*<>/\|";
string encoded = Regex.Replace(
HttpUtility.UrlEncode(input),
@"[()\.\-*]",
m => "%" + Convert.ToString((int)m.Captures[0].Value[0], 16)
);
关于asp.net - 如何在 ASP.NET 中模拟 ASP Server.URLEncode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2012483/