20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382

Настройка кодировки ответе на запрос

09.10.2017, 15:01. Показов 3669. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь в разрешении проблемы с кодировкой и отображением символов.

Использую для отладки хром и студию 17ю.
Отправляем запрос ajax скриптом в mvc приложение.

В случаем полного, корректного ответа, возвращая json результат всё нормально отображается и кодируется.
В случае ошибки, обрабатываю её HandleErrorAttribute-ом и пишу свой ответ. (проблема именно здесь)

В случае ошибки я возвращаю нужный мне статус код + ошисание (свойства httpContext.Respons. StatusCode\StatusDescription) и для теста просто запись в поток текста рус + англ.
В итоге браузер русский текст не понимает, с англом всё норм. (мне нужно рус наладить).
Кодировка дефолтная (utf - 8) в метаданных страницы кодировка utf-8

(скрины из браузера приложу)


Вопрос, что и где написать что бы браузер понимал рус ответ?


Запрос
JavaScript
1
2
3
4
5
6
7
 $.ajax({
            url: "/Administration/DevicesManager/Devices",
            dataType: "json",
            success: (data) => {
                ...
            }
        });
Обработка
-Приём
C#
1
2
3
4
5
6
[HttpGet]
        [ApiErrorHandler]
        public ActionResult Devices()
        {
            throw new Exception("русСкий тест");
        }
-обработка ошибки
C#
1
2
3
4
5
6
public override void OnException(ExceptionContext filterContext)
        {
            filterContext.HttpContext.Response.StatusCode = (int)StatusCode;
            filterContext.HttpContext.Response.StatusDescription = string.IsNullOrWhiteSpace(filterContext.Exception.Message) ? DefaultErrorMessage : filterContext.Exception.Message;
            filterContext.ExceptionHandled = true;
        }
Миниатюры
Настройка кодировки ответе на запрос   Настройка кодировки ответе на запрос   Настройка кодировки ответе на запрос  

0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.10.2017, 15:01
Ответы с готовыми решениями:

Ограничения по символам в ответе на запрос
Добрый день всем. Допустим у меня есть код, который после отправки пост запроса из ответа вытаскиевает определенную строку. Как...

Отправить файл в ответе на GET запрос
Добрый день. Сам я программист 1С (не будем кидаться какашками :rolleyes: ), поэтому в php я вообще нуб ) Вопрос такой: Из...

Неверная кодировка в ответе на GET-запрос
Здравствуйте, отсылаю GET запрос серверу: public string SendGet(string url) { string content =...

4
Эксперт .NET
 Аватар для Usaga
14051 / 9260 / 1345
Регистрация: 21.01.2016
Сообщений: 34,743
09.10.2017, 16:43
DarkOrk, .NET работает со строками в UTF16. Попробуйте указать такую кодировку в заголовке ответа или перегоните текст в UTF8 перед передачей браузеру (System.Text.Encoding.UTF8).
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
09.10.2017, 17:19  [ТС]
Usaga, не помогло.
По дефолту, в свойстве HttpContext.Response.ContentEncoding у меня написано utf-8
Я изменил шапку страницы на utf-16 и в ответ, в свойство HttpContext.Response.ContentEncoding указал utf-16 (unicode)

Результат прежний - корректно не отображается.
0
Эксперт .NET
 Аватар для Usaga
14051 / 9260 / 1345
Регистрация: 21.01.2016
Сообщений: 34,743
09.10.2017, 17:42
DarkOrk, ну да, у меня так же. Вас смущает, что в интсрументах разработчика такое проявляется или и вне их тоже? Я к тому, что видимо в Developers Tools с этим какие-то проблемы. Если вы ответ будите на странице показывать (в виде Pop-Up или просто строкой), то такого быть не должно. Это просто косяк самого Chrome.
0
20 / 19 / 9
Регистрация: 06.02.2015
Сообщений: 382
13.10.2017, 14:17  [ТС]
Usaga, вот только добрался....
Вы частично правы.
Я восстановил всё дефолтно (страница у меня была utf-8 и в ответе за запрос по дефолту кодировка стоит utf-8)
проверил вашу гипотезу и вот что нашёл
Если отвечаю вот так
C#
1
2
3
filterContext.HttpContext.Response.StatusCode = (int)StatusCode;
            filterContext.HttpContext.Response.StatusDescription = string.IsNullOrWhiteSpace(filterContext.Exception.Message) ? DefaultErrorMessage : filterContext.Exception.Message;
            filterContext.HttpContext.Response.Write(string.IsNullOrWhiteSpace(filterContext.Exception.Message) ? DefaultErrorMessage : filterContext.Exception.Message);
то в итоге я понимаю вот это (прикрепил скрин)

То есть - кодировка влияет на тело, но не влияет на "служебные" поля.
Как их настроить? А то это как-то глупо выходит что пол текста норм, а пол текста "краказябрами"
Миниатюры
Настройка кодировки ответе на запрос  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2017, 14:17
Помогаю со студенческими работами здесь

Запрос проходит но в ответе каракули
Всем привет. Отправляю GET с помощью Synapse. Запрос проходит и в снифере все норм. Но в делфи пытаюсь вывести полученное в Memo ...

Не выводит XML в ответе на запрос
Добрый день есть такая проблема приходит Get запрос в ответ на него скрипт должен обратится к базе данных взять оттуда информацию вывести...

Запустить скрипт полученный в ответе на запрос
Всем привет, имею такую конструкцию: $.ajax({ type:'post',//тип запроса: get,post либо head ...

Как получить русские буквы в ответе на запрос?
Проблема такая. Сикл сервер содержит контент на русском языке. Когда пишу запрос в MS Query Analyzer 'select name from table whrere name...

Настройка кодировки .
Есть проблемма. Сайт на utf-8. Форма обратной связи работает нормально, но проблемма с приходящими сообщениями. А точнее - письмо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru