Ad Widget

Collapse

HTTP агент не работает с сайтами в кодировке отличной от UTF 8

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Victor Sklyarov
    Senior Member
    • Apr 2016
    • 184

    #1

    HTTP агент не работает с сайтами в кодировке отличной от UTF 8

    Добрый день.
    При мониторинге принтеров Brother выяснилось, что цветной принтер HL-3170 не отдаёт по SNMP ни состояние расходников, ни количество страниц в цвете и в ч/б. Возникла идея получить эти параметры с WEB страницы. Однако кодировка WEB в принтере - iso-8859-5. При попытке получить страницу с принтера возникает ошибка: Server returned invalid UTF-8 sequence. Есть ли пути решения этой проблемы? Неужели все Инет серверы работают исключительно в кодировке UTF-8? Версия zabbix - 4.4.3
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Случайно, не аналогичная проблема?

    Comment

    • Victor Sklyarov
      Senior Member
      • Apr 2016
      • 184

      #3
      Нет. Всё вроде правильно. Вот заголовок страницы
      <!--?xml version="1.0" encoding="iso-8859-5"?-->
      <html lang="ru" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
      <head><meta http-equiv="Content-Script-Type" content="text/javascript">
      <meta http-equiv="content-style-type" content="text/css">
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5">
      <link rel="stylesheet" type="text/css" href="../common/css/common.css">
      <link rel="stylesheet" type="text/css" href="../common/css/ews.css">
      <title>Brother HL-3170CDW series</title>
      </head>
      Click image for larger version

Name:	Состояние_принтера.jpg
Views:	279
Size:	132.7 KB
ID:	415011

      Comment

      • Whols
        Senior Member
        • Jul 2018
        • 133

        #4
        А почему у вас скрин с тегом <head> а в в настройках ЭД "Тело"? Это не влияет на запрос?

        Comment

        • Kos
          Senior Member
          Zabbix Certified SpecialistZabbix Certified Professional
          • Aug 2015
          • 3404

          #5
          Originally posted by Whols
          А почему у вас скрин с тегом <head> а в в настройках ЭД "Тело"? Это не влияет на запрос?
          Потому что это тело ответа. В отличие от HTTP-заголовков.

          Для меня неясно, зачем задавать HTTP-заголовок "Content-Type: text/html;charset=iso-8859-5" для GET-запроса, в котором тела-то, собственно, и нет.
          Мне кажется логичным просить, наоборот, чтобы ответ приходил в нужной кодировке: Accept: text/xml;charset=utf-8" (или какой там Content-Type принтер сам проставляет для ответа; не факт, что сработает, конечно).

          Comment

          • Victor Sklyarov
            Senior Member
            • Apr 2016
            • 184

            #6
            Бесполезно просить отдать содержимое в UTF-8, если на сайте другая кодировка. Не умеет WEB сервер принтера преобразовывать 8859 в UTF. Получить заголовок, где только английские символы, можно. При попытке получить тело, сразу возникает ошибка, поскольку там есть символы кириллицы. Положение не спасает даже предобработка -конвертация в UTF-8 наJavaScript. Проверка текста на валидность происходит до того, как он попадает в предобработку. В общем я уже не первый раз сталкиваюсь с проблемами национальной кодировки в zabbix. Положение с кодировками напоминает пословицу - нет бога кроме .... и UTF-8 пророк его. С чего разработчики взяли, что все сайты работают в UTF-8 непонятно. Считаю это багом. Вопрос решил переводом языка принтера на английский. Поделитесь, как с аналогичным запросом обстоят дела в zabbix 5?

            Comment

            Working...