Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41

Некорректное отображение кириллицы в базе и фронтэнде zabbix

09.02.2023, 14:04. Показов 5844. Ответов 20

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Столкнулся с проблемой кодировки в базе заббикса. А именно итемы, которые возвращают ответ кириллицей utf-8, отображается знаками вопросов, но весь остальной текст в веб-интерфейсе на русском отображается нормально. База PostgreSQL 9.2.24, Zabbix 5.0.30, имеет такие кодировки и локали:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
postgres=# select datname, pg_encoding_to_char(encoding) from pg_database;
  datname  | pg_encoding_to_char
-----------+---------------------
 postgres  | UTF8
 zabbix    | UTF8
 template1 | UTF8
 template0 | UTF8
(4 rows)
 
​postgres-# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges  
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 zabbix    | zabbix   | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
 
​[root@0001zabdb01 ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Думал может как-то поменять en_US.UTF-8 на ru_RU.UTF-8, но не знаю как это отобразится на работе заббикса. Может я не правильно понимаю проблему. Есть у кого-либо идеи, как поступить в такой ситуации?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2023, 14:04
Ответы с готовыми решениями:

Некорректное отображение кириллицы
Здравствуйте! Столкнулся с такой проблемой: в результате выполнения программы(Java) для выведения текста в строке не отображается...

Некорректное отображение кириллицы
Здравствуйте! Появилась необходимость работы с аудиокартой через Matlab и возникли определенные трудности. Установлены Matlab2019, Win10...

Некорректное отображение кириллицы в БД
Здравствуйте, в базе две таблицы, одна нормально отображает кириллицу, а другая нет (тоесть ?????? вместо привет), как решить эту проблему?...

20
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
09.02.2023, 22:13
Если у вас ENCODING=UTF8, то скорее всего в базе все нормально.
Надо посмотреть, какие настройки у Заббикса, и внимательно просмотреть его документацию.

Например, вот
https://www.zabbix.com/documen... 2Cencoding
Zabbix server expects every returned text value in the UTF8 encoding. This is related to any type of checks: zabbix agent, ssh, telnet, etc.

Different monitored systems/devices and checks can return non-ASCII characters in the value. For such cases, almost all possible zabbix keys contain an additional item key parameter - <encoding>. This key parameter is optional but it should be specified if the returned value is not in the UTF8 encoding and it contains non-ASCII characters. Otherwise the result can be unexpected and unpredictable.
Что за item key parameter - <encoding> ??
Мне кажется надо тут разбираться, потом на базу грешить.
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
09.02.2023, 22:44  [ТС]
Цитата Сообщение от grgdvo Посмотреть сообщение
Например, вот
Первым делом прочитано.
В моих итемах нет параметра encoding, например: db.odbc.select[<unique short description>,<dsn>,<connection string>] Возвращает первую колонку первой строки результата SQL запрос.
db.odbc.discovery[<unique short description>,<dsn>,<connection string>] Преобразование результата SQL запроса в JSON массив для низкоуровневого обнаружения.
Моем случае данные получаю селектом в ms sql в кодировке Cyrillic_General_CI_AS, на эту базу повлиять не могу. Если только прямо в запросе перекодировать ответ, но пока не нашел подобного. Пробовал ставить разные параметры odbc и freetds, но не помогло, в консоли то все нормально отображается.
Да согласен, что возможно дело не в базе, так как в нее можно записать кириллицу и она будет отображаться в веб-интерфейсе заббикса корректно. Но все же ищу варианты решения проблемы и пока точно ни в чем не уверен.
0
1263 / 977 / 384
Регистрация: 02.09.2012
Сообщений: 3,020
10.02.2023, 00:53
Цитата Сообщение от Griboed0ff Посмотреть сообщение
Моем случае данные получаю селектом в ms sql в кодировке Cyrillic_General_CI_AS, на эту базу повлиять не могу. Если только прямо в запросе перекодировать ответ, но пока не нашел подобного. Пробовал ставить разные параметры odbc и freetds,
Так... Ничего не понял...
Откуда взялся MS SQL Server в этой задаче??
Вы же написали, что у Вас postgres и показываете скрины от postgres.

Рассказывайте тогда вашу схему подробнее, зачем здесь mssql нужен, и что у вас с postgres и как это все связано?!
Если у вас только MS, то тогда сразу просите админов форума переносить тему, здесь такое обсуждение запрещено.
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
10.02.2023, 07:10  [ТС]
Цитата Сообщение от grgdvo Посмотреть сообщение
Откуда взялся MS SQL Server в этой задаче??
В общем заббикс умеет делать селекты в разные базы. Схема осталась та же, zabbix работает на postgresql, в нем создан итем (db.odbc.discovery), который обращается в базу ms sql, ответ получает в Cyrillic_General_CI_AS, итог знаки вопросов вместо кириллицы.

Добавлено через 9 минут
Везде советуют пересоздать базу postgresql с русской локалью, но для меня это слишком радикально.
0
668 / 291 / 120
Регистрация: 12.04.2022
Сообщений: 1,000
10.02.2023, 09:08
В запросе к MSSQL укажите нужный Collation, например

T-SQL
1
2
select char_field SQL_Latin1_General_CP1251_CI_AS
  from MyTable
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
10.02.2023, 10:26  [ТС]
Цитата Сообщение от PaulWist Посмотреть сообщение
В запросе к MSSQL укажите нужный Collation
Я еще погуглю на эту тему, но такой запрос лишь меняет название столбца на SQL_Latin1_General_CP1251_CI_AS, что-то у меня не получилось, хотя такое решение спасло бы базу от радикальных решений.
0
668 / 291 / 120
Регистрация: 12.04.2022
Сообщений: 1,000
10.02.2023, 10:40
Цитата Сообщение от Griboed0ff Посмотреть сообщение
запрос лишь меняет название столбца
Поторопился малёк, пропустил collate

T-SQL
1
2
select char_field  collate SQL_Latin1_General_CP1251_CI_AS as char_field
  from MyTable
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
10.02.2023, 11:39  [ТС]
Осталось подобрать что-то типа utf8_general_ci, но такой в ms sql нет. И есть сомнения, вроде collate влияет на сортировку, а не кодировку?
Цитата Сообщение от PaulWist Посмотреть сообщение
select char_field collate SQL_Latin1_General_CP1251_CI_AS as char_field
from MyTable
- такой запрос выдает те же ????
0
668 / 291 / 120
Регистрация: 12.04.2022
Сообщений: 1,000
10.02.2023, 12:05
Цитата Сообщение от Griboed0ff Посмотреть сообщение
такой запрос выдает те же ????
Какой драйвер используется для доступа к MSSQL?
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
10.02.2023, 12:49  [ТС]
Цитата Сообщение от PaulWist Посмотреть сообщение
Какой драйвер используется для доступа к MSSQL?
заббикс вызывает odbc он в свою очередь FreeTDS для mssql. ODBC.ini:
Code
1
2
3
4
5
6
7
8
[0001sql12]
Description=FreeTDS
Driver=FreeTDS
Server=********
Database=*****
UID=
PWD=
client charset=UTF8
freetds.ini:
Code
1
2
3
4
5
[0001sql12]
host = *****
Port = 1433
tds_version = 7.2
client charset= UTF-8
Через isql отлично подключается и отображает кириллицу.

Добавлено через 19 минут
charset= UTF-8 или charset= UTF8 похоже ни на что не влияет, как не менял, ничего не меняется.
0
668 / 291 / 120
Регистрация: 12.04.2022
Сообщений: 1,000
10.02.2023, 13:05
Цитата Сообщение от Griboed0ff Посмотреть сообщение
Через isql отлично подключается и отображает кириллицу.
Какой драйвер использует?
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
10.02.2023, 13:20  [ТС]
Цитата Сообщение от PaulWist Посмотреть сообщение
Какой драйвер использует?
Этот же: isql вызывает odbc он в свою очередь FreeTDS для mssql
Code
1
2
3
4
5
6
[FreeTDS]
Description=FreeTDS unixODBC Driver
Driver=/usr/lib64/libtdsodbc.so.0
Setup=/usr/lib64/libtdsodbc.so.0
TDS_Version=7.2
UsageCount=1
0
139 / 105 / 36
Регистрация: 27.07.2022
Сообщений: 357
10.02.2023, 16:26
С родными микрософтскими драйверами не пробовали? Смутно припоминаю, что были как-то у нас проблемы на стыке заббикса и FreeTDS, решилось сменой дров. Правда там вроде не с кодировкой было, а что-то другое
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
13.02.2023, 10:48  [ТС]
Цитата Сообщение от katamoto Посмотреть сообщение
микрософтскими драйверами не пробовали?
Решил попробовать, но пока не могу подключиться к нужному серверу, так как имя сервера 0001SQL12.RYI.RU\HELPDESK и драйвер просто не может найти сервер в сети. FreeTDS нормально принимает такое имя. К другим mssql с нормальным именем нормально подключился. Уже пробовал разные варианты, с кавычками и прочим, пока неудача с такой строкой в odbc.ini:
Code
1
 Server =tcp:0001SQL12.RYI.RU\HELPDESK,1433
0
139 / 105 / 36
Регистрация: 27.07.2022
Сообщений: 357
13.02.2023, 11:08
Заглянул как у нас - там без указания порта\протокола, просто server = servername\instancename
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
13.02.2023, 11:18  [ТС]
Цитата Сообщение от katamoto Посмотреть сообщение
server = servername\instancename
и isql нормально подключается?
И так и сяк уже пробовал. Возможно для именного экземпляра используется какой-то свой порт, который и надо указать вместо сервер\экземпляр - сервер, порт. А может другую версию драйвера использовать, у нас mssql 14, драйвер пробовал 18 и 17.
0
139 / 105 / 36
Регистрация: 27.07.2022
Сообщений: 357
13.02.2023, 11:24
И isql подключается и запросы из заббикса нормально бегают, драйвер 17. isql с доп. ключом -vvv что пишет?
0
0 / 0 / 0
Регистрация: 29.03.2022
Сообщений: 41
13.02.2023, 11:31  [ТС]
Цитата Сообщение от katamoto Посмотреть сообщение
доп. ключом -vvv что пишет
Собственно и пишет, что не может достучаться до сервера :Message Text = [[unixODBC][Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing]
[08001][unixODBC][Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
0
139 / 105 / 36
Регистрация: 27.07.2022
Сообщений: 357
13.02.2023, 14:03
А на других-то инстансах, к которым нормальный коннект есть, проблема с кодировкой решилась или нет? А то может и смысла нет дальше драйвера тусовать местами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.02.2023, 14:03
Помогаю со студенческими работами здесь

Некорректное отображение кириллицы в меню
Добрый вечер! имеется список меню: &lt;select name=&quot;select1&quot;&gt; &lt;option value=&quot;Книга&quot;&gt;Книга&lt;/option&gt; &lt;option...

Некорректное отображение кириллицы в DateTimePicker
Подскажите, пожалуйста, в чем может быть причина такого некорректного отображения, как показано на скриншоте.

Некорректное отображение кириллицы в консоли
У меня почему при обычно запуски cmd вылетает такая абракадабра: Команда chcp выдает 866 Смена кодировки тоже не помогла chcp...

Android 4.1.1 некорректное отображение кириллицы
Добрый вечер всем. Загружаю текст из базы данных в компонент webView, при загрузке получаю непонятные символы. При чем на Android 4.4.4 и...

Некорректное отображение кириллицы в vs code
Здраствуйте!!! Сразу к проблеме. Решил по изучать Python, столкнулся с проблемой: При использовании кириллицы в коде, VS CODE в...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru