Имя: Пароль:
1C
 
Кодовая страница в HTTP ответе
, ,
0 petya_
petrov_63
 
12.02.23
16:56
Ваяю HTTP сервис. Не могу победить, чтобы сообщение о ошибке отправлялось в HTTP ответ в нормальной кодировке. Сервер IIS


    <title>Подробные данные об ошибке IIS 10.0 — 400.0 — ×åê ñ ¹ 202211012105031693858 òðàíçàêöèè è ¹
        d2b4bea0-d1c1-11ec-ab2a-0cc47adb09e9 òåðìèíàëà óæå ñîçäàí </title>
    <style type="text/css">
1 petya_
petrov_63
 
17.02.23
14:03
Установка заголовка "Content-type", "application/json; charset=windows-1251" не помогает.

    СтруктураТела = Новый Соответствие();
    СтруктураТела.Вставить("Message"        ,СообщениеОбОшибке);
    СтруктураТела.Вставить("ResultState"    ,КодОтвета);
    СтруктураТела.Вставить("Content-type", "application/json; charset=windows-1251");    

    СервисОтвет = Новый HTTPСервисОтвет(КодОтвета,СообщениеОбОшибке,СтруктураТела);
2 Кир Пластелинин
 
17.02.23
14:19
мимокрокодил, но мб utf-8 все же?
3 OldCondom
 
17.02.23
14:21
(2) + 1. Общаюсь В/ИЗ в UTF-8, проблем не знаю
4 petya_
petrov_63
 
17.02.23
14:26
(2) не помогло
    СтруктураТела.Вставить("Content-type", "application/json; charset=utf-8");    

Подробные данные об ошибке IIS 10.0 — 400.0 — ×åê ñ ¹ òðàíçàêöèè 202211012105031693859 è ¹
        d2b4bea0-d1c1-11ec-ab2a-0cc47adb09e9 òåðìèíàëà íå íàéäå
5 petya_
petrov_63
 
17.02.23
14:27
Точнее
    СтруктураТела = Новый Соответствие();
    СтруктураТела.Вставить("Message"        ,СообщениеОбОшибке);
    СтруктураТела.Вставить("ResultState"    ,КодОтвета);
    СтруктураТела.Вставить("Content-type", "application/json; charset=UTF-8");    

    СервисОтвет = Новый HTTPСервисОтвет(КодОтвета,СообщениеОбОшибке,СтруктураТела);
6 eRik
 
17.02.23
14:57
Да это же вроде IIS ругается, без разницы, что там 1С отдает. Ошибка 400.0 - Bad request.

Если раскодировать этот ответ, там:

<title>Подробные данные об ошибке IIS 10.0 — 400.0 — Чек с № 202211012105031693858 транзакции и №
        d2b4bea0-d1c1-11ec-ab2a-0cc47adb09e9 терминала уже создан </title>

Вобщем, он пытается отвечать кириллицей, используя кодировку ISO 8859-1
7 kobzon2
 
17.02.23
15:00
А это не в этом случае где-то в IIS нужно включать поддержку 32 bit?
8 petya_
petrov_63
 
17.02.23
17:03
(6) нет это сообщение с участием 1С, т.е. у мен\ в параметрах стоит ошибка 400, а вот какого заголовок с указанием кодовой страницы не цепляется не понятно.
я то же самое получил https://pastenow.ru/LP3U4
9 ДедМорроз
 
18.02.23
11:46
Там два момента.
Первый,когда мы собираем тело ответа из строки,мы должны указать кодировку,а второе,это эту же кодировку указать в заголовке.
И ни разу проблем не было.
10 petya_
petrov_63
 
18.02.23
18:41
(9) что не так в (1)?
11 ДедМорроз
 
19.02.23
19:31
УстановитьТелоИзСтроки - в С.П.поискать
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан