The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Русские символы в rrdtool"
Отправлено auto_tips, 01-Фев-07 11:22 
При отображении строк в RRD используется кодировка UTF-16, в которой есть таблица русских символов,
соответствующая таблице CP1251, только со смещением.
Чтобы rrdgraph смог отображать русские символы на графиках
необходимо внести изменения в файл src/rrd_afm.h. Находим в нем строчку

   #define afm_fix_osx_charset(x) (x)

и заменяем на

   #define afm_fix_osx_charset(x) \
     ( (x) >= 128 && (x) <= 255 ? (x) + 0x0350 : (x))

Таким образом, если в строке встречается символ с кодом между 127 и 256, то к нему применяется смещение 0x0350.
Строки необходимо записывать в CP1251 (я использую vim с libiconv).

Для работы с KOI8 необходима еще таблица перестановок из KOI8 в CP1251

Для этого в файл src/rrd_afm.c добавляем описание таблицы
const unsigned char afm_koi2win[128] = {128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,184,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,254,224,225,246,228,229,244,227,245,232,233,234,235,236,237,238,239,255,240,241,242,243,230,226,252,251,231,248,253,249,247,250,222,192,193,214,196,197,212,195,213,200,201,202,203,204,205,206,207,223,208,209,210,211,198,194,220,219,199,216,221,217,215,218};

а в src/rrd_afm.h такие строки

   extern const unsigned char afm_koi2win[128];
   #define afm_fix_osx_charset(c) \
     ( (c) >= 128 && (c) <= 255 ? afm_koi2win[(c) - 128] + 0x0350 : (c))


URL:
Обсуждается: https://www.opennet.ru/tips/info/1366.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру