2016-06-06 6 views
1

Я пытаюсь построить названия сайта генерируются динамически из HttpContext, но я видел, что у меня есть проблемы, когда URL содержит специальные символы, такие как ß что приводит названия, имеющие неправильные символы, например fußball переводится в fu%C3%9Fball. Сейчас я храню свой титул в массиве так:Получение правильного кодирования с HttpContext

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

Дело в том, что AbsolutePath возвращает fu%C3%9Fball когда URL фактически fußball. Я видел, что RawUrl получает правильные символы, но он также принимает строку запроса, которую я не хочу. Есть ли какой-то общий и простой способ сделать это, или мне нужно написать строку запроса на растяжение строки расширения?

+3

Использование Try HttpServerUtility.UrlDecode (HttpContext.Current.Request.Url.AbsolutePath). –

ответ

1

Возможно, вы ищете методы UrlEncode и UrlDecode.

MSDN | HttpServerUtility.UrlDecode Method (String)

Не знает, какую версию .NET вы используете, см сложной дискуссии здесь.

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

+0

Спасибо, я не знаю, что я пропустил раньше .. потому что я на 100% уверен, что видел этот метод. – kuskmen

 Смежные вопросы

  • Нет связанных вопросов^_^