"Крякозябры" на отдельных сайтах при определенных настройках проекта

  • Автор темы Автор темы flySP
  • Дата начала Дата начала

flySP

Client
Регистрация
30.09.2025
Сообщения
16
Реакции
0
Баллы
1
На некоторых сайтах, например sport-interfax.ru,
при загрузке страницы через GET весь текст на кириллице в body ответа читается как "крякозябры":
������ �������� ������� ��������� ������� ������.
Вот часть body :
..............
<!DOCTYPE html>
<html lang="ru" prefix="article: "><head>
<title>������ �������� ����� � ������������� ������� Masters � ������</title>
<link rel="shortcut icon" href="vicon.ico" type="image/x-icon">
<link rel="icon" sizes="120x120" href="touch-icon-iphone-retina.png" />
<link rel="apple-touch-icon" href="touch-icon-iphone.png">
<link rel="apple-touch-icon" sizes="76x76" href="ouch-icon-ipad.png">
<link rel="apple-touch-icon" sizes="120x120" href="/touch-icon-iphone-retina.png">
<link rel="apple-touch-icon" sizes="152x152" href="/touch-icon-ipad-retina.png">
<link rel="manifest" href="/manifest.json">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="application-name" content="���������" />
<meta name="apple-mobile-web-app-title" content="���������">
...............

Вот код запроса:
var resultHttpGet = ZennoPoster.HttpGet(project.Variables["href_site"].Value,
"",
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody);
return resultHttpGet;

Простое изменение на кодировку Windows-1251 не помогает.
Все становится нормально, только если :
1. при GET запросе в коде указать "Windows-1251" вместо "UTF-8" и
2. самое главное в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
При установке параметра "Альтернативный", результат "крякозябры"

При обработке через браузер проблем нет.
Весь шаблон со всеми другими сайтами работает на "UTF-8" и "Альтернативный".
Как решить проблему именно с обработкой через GET, а не через браузер ?
Загнать кодировку в переменную и управлять ею в зависимости от типа кодировки на конкретном сайте не решает проблему,
так как управлять оперативно парметром "Способ передачи HTTP-запросов" по мере выполнения шаблона нельзя
или я ошибаюсь ?
 
На некоторых сайтах, например sport-interfax.ru,
при загрузке страницы через GET весь текст на кириллице в body ответа читается как "крякозябры":
������ �������� ������� ��������� ������� ������.
В настрйоках проекта на вкладке HTTP назначьте Альтернативный метод запросов.

137250

137251
 
Хм... Прямо твой код, Альтернативный - нормальная кириллица...
137252
 
Sergodjan, я повторюсь :
Все становится нормально, только если :
1. при GET запросе в коде указать "Windows-1251" вместо "UTF-8" и
2. самое главное в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
При установке параметра "Альтернативный", результат "крякозябры"

или я вас неправильно понял ?
 
Sergodjan, я повторюсь :
Все становится нормально, только если :
1. при GET запросе в коде указать "Windows-1251" вместо "UTF-8" и
2. самое главное в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
При установке параметра "Альтернативный", результат "крякозябры"

или я вас неправильно понял ?
Если версия зеннопостера слишком стара, нужно обновится. С крякозябликами была половина сайтов
 
Moonwalker, да, все верно, проблема не с главной страницей самого коренноого домена sport-interfax.ru, а уже с его новостными страницами, типа sport-interfax.ru/1055674
 
Sergodjan, я повторюсь :
Все становится нормально, только если :
1. при GET запросе в коде указать "Windows-1251" вместо "UTF-8" и
2. самое главное в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
При установке параметра "Альтернативный", результат "крякозябры"

или я вас неправильно понял ?
Все правильно, на сайте 1251 кодировка объявлена.
Меняйте кодировку в кубике запроса.
Все равно кракозябрит?

137255

PS: Я проверил с windows-1251 кодировкой в кубике - все ок.
 
Sergodjan,
"Windows-1251" вместо "UTF-8" не спасает,
только если в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
А при "АЛЬТЕРНАТИВНОМ" все "криво".
 
Moonwalker, да, все верно, проблема не с главной страницей самого коренноого домена sport-interfax.ru, а уже с его новостными страницами, типа sport-interfax.ru/1055674
Попробуй запрос делать другим способом (по сути, получаем в win-1251, конвертируем):

C#:
Развернуть Свернуть Копировать
byte[] responseBytes = ZennoPoster.HTTP.RequestBytes(
    ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
    project.Variables["href_site"].Value,
    "",
    "",
    "",
    "",
    ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
    30000,
    "",
    "",
    true,
    5,
    null,
    null,
    false,
    false,
    null,
    false
);

Encoding win1251 = Encoding.GetEncoding("windows-1251");
string resultText = win1251.GetString(responseBytes);

return resultText;

PS. Если нужно именно с заголовками, то, соответственно, HeaderAndBody вместо BodyOnly.
 
Последнее редактирование:
Sergodjan,
"Windows-1251" вместо "UTF-8" не спасает,
только если в НАСТРОЙКАХ всего проекта установить параметр "Способ передачи HTTP-запросов" - По-умолчанию.
А при "АЛЬТЕРНАТИВНОМ" все "криво".
Используйте тогда по умолчанию метод.
У меня и с корня сайта и с внутренней страницы - не кракозябрит.
 

Вложения

Moonwalker, спасибо, все заработало.
 
Sergodjan, при "АЛЬТЕРНАТИВНОМ" все "криво"
 
Sergodjan, при "АЛЬТЕРНАТИВНОМ" все "криво"
Верните на Стандартный метод, который по умолчанию.
Или вам нужен сейчас именно Альтернативный метод? Для чего?
 
Последнее редактирование:
Sergodjan, необходима работа без "крякозябров" именно при "АЛЬТЕРНАТИВНОМ", весь фунционал проекта настроен и корректно РАБОТАЕТ при "АЛЬТЕРНАТИВНОМ"
 
Sergodjan, необходима работа без "крякозябров" именно при "АЛЬТЕРНАТИВНОМ", весь фунционал проекта настроен и корректно РАБОТАЕТ при "АЛЬТЕРНАТИВНОМ"
Тогда используйте что вам выше подсказали.
 
Еще бывает помогает вместо accept-encoding: gzip, deflate, br, zstd ставить accept-encoding: gzip, deflate, br (без zstd), если полностью все из кракозябр.
 
Еще бывает помогает вместо accept-encoding: gzip, deflate, br, zstd ставить accept-encoding: gzip, deflate, br (без zstd), если полностью все из кракозябр.
Пробовал, не прокатило.
Тем более 7.8.12.0 должен справляться с этим.
Проблема с zstd была на старых версиях.
 
  • Спасибо
Реакции: Roman*
Всем спасибо, как я и сказал выше, заработал вариант предложенный Moonwalker
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)