从 HTTPContext 获取正确的编码
Getting right encoding from 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 returns fu%C3%9Fball
而 url 实际上是 fußball
。我看到 RawUrl
得到了正确的字符,但它也接受了查询字符串,我没有 want.Is 有任何通用和直接的方法来做到这一点,或者我必须编写扩展方法条带化查询字符串?
您可能正在寻找的是 UrlEncode 和 UrlDecode 方法。
MSDN | HttpServerUtility.UrlDecode Method (String)
不确定您使用的是哪个 .NET 版本,请参阅此处的详细讨论。
我正在尝试构建从 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 returns fu%C3%9Fball
而 url 实际上是 fußball
。我看到 RawUrl
得到了正确的字符,但它也接受了查询字符串,我没有 want.Is 有任何通用和直接的方法来做到这一点,或者我必须编写扩展方法条带化查询字符串?
您可能正在寻找的是 UrlEncode 和 UrlDecode 方法。
MSDN | HttpServerUtility.UrlDecode Method (String)
不确定您使用的是哪个 .NET 版本,请参阅此处的详细讨论。