Запрос.Форма декодируется в Controller .Net core 2.1

Пользователь вводит специальный символ (ä), а также символ% в поле адреса формы.

Почтовый вызов происходит при сохранении формы, и вот как выглядят данные формы в браузере - ä, закодированные как%E4, и символ%, правильно закодированный как%25

Но когда я получаю доступ к Request.Form в контроллере, я вижу реальный символ% вместо%25

[HttpPost]
[ActionName("exec")]
public async Task<ActionResult> executePost([FromRoute]string client)
{
    HttpContent response = await _hRequest.PostDataAsync(Request, Request.Form, 
    HttpContext.Request.QueryString);
    return response
}

Почему я вижу% вместо%25. Он был правильно закодирован в данных формы браузера, но был декодирован внутри контроллера? Я попытался изменить тип содержимого в заголовках запроса с application/x-www-form-urlencoded на multipart/form-data, но это не помогло. Я попытался использовать [FromForm] IFormCollection вместо Request.Form, но все равно не повезло.

Из-за этого последние 3 символа%E4, введенные пользователем, будут обрабатываться как специальный символ (%E4 - шестнадцатеричный код для ä в кодировке ISO-8859-1) вместо отображения как есть.

Вот так выглядят данные в форме после отправки звонка:

Но я хочу видеть такие данные - Käse%E4

Спасибо, что посмотрели.

Дополнительная информация:

0 ответов

Другие вопросы по тегам