Пользователь вводит специальный символ (ä), а также символ% в поле адреса формы.
После сохранения формы происходит почтовый вызов, и вот как выглядят данные формы в браузере - ä, закодированные как% 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
Спасибо, что посмотрели.
Дополнительная информация: