Запрос.Форма декодируется в Controller .Net core 2.1 - PullRequest
0 голосов
/ 30 января 2019

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

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

Form data

Но, когда я получаю доступ к 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
}

Request.Form in debug

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

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

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

enter image description here

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

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

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

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...