从HTTPContext获得正确的编码



我正在尝试构建从HTTPContext动态生成的网站标题,但是当url包含ß等特殊字符时,我遇到了问题,这会导致标题具有错误的字符,例如fußball转换为fu%C3%9Fball。现在我将标题存储在这样的数组中:

string[] customSEOTitle = HttpContext.Current.Request.Url.AbsolutePath
   .Split('/')
   .Where(s => !string.IsNullOrWhiteSpace(s))
   .Distinct()
   .Select(s => CultureInfo.CurrentCulture.TextInfo.ToTitleCase(s))
   .ToArray();

问题是 AbsolutePath 在 url 实际fußball时返回fu%C3%9Fball 。我看到RawUrl得到正确的字符,但它确实也需要我不想要的查询字符串。是否有任何通用且直接的方法可以执行此操作,或者我必须编写扩展方法条带化查询字符串?

您可能正在寻找的是 UrlEncode 和 UrlDecode 方法。

MSDN |HttpServerUtility.UrlDecode Method (string)

不确定您使用哪个 .NET 版本,请参阅此处的详细讨论。

替换 System.Web.HttpUtility.UrlEncode/UrlDecode ASP.NET 5

相关内容

  • 没有找到相关文章

最新更新