Запрос.Форма декодируется в 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
Спасибо, что посмотрели.
Дополнительная информация: