【问题标题】:Getting right encoding from HTTPContext从 HTTPContext 获取正确的编码
【发布时间】:2016-06-06 11:32:39
【问题描述】:

我正在尝试构建从 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();

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

【问题讨论】:

  • 尝试使用 HttpServerUtility.UrlDecode(HttpContext.Current.Request.Url.AbsolutePath)。

标签: c# .net seo httpcontext


【解决方案1】:

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

MSDN | HttpServerUtility.UrlDecode Method (String)

不确定您使用的是哪个 .NET 版本,请在此处查看详细讨论。

Replacement for System.Web.HttpUtility.UrlEncode/UrlDecode ASP.NET 5

【讨论】:

  • 谢谢,我不知道我之前错过了什么......因为我 100% 确定我看到了那个方法。
猜你喜欢
  • 2017-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 2015-01-03
  • 2010-09-08
  • 1970-01-01
相关资源
最近更新 更多