URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 36580
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Русские символы в 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:
Обсуждается: http://www.opennet.me/tips/info/1366.shtml


Содержание

Сообщения в этом обсуждении
"Русские символы в rrdtool"
Отправлено x0x01 , 01-Фев-07 11:22 
есть несколько другой путь, использовать при рендере графика русский koi8 ttf шрифт:
--font DEFAULT:10:/usr/share/fonts/koi8-ttf/TIMESI8.TTF

"Русские символы в rrdtool"
Отправлено denis , 03-Фев-07 14:39 
Или в юникоде писать просто :)

"Русские символы в rrdtool"
Отправлено const86 , 04-Фев-07 22:15 
> Или в юникоде писать просто :)

И как только вам такое в голову могло придти...


"Русские символы в rrdtool"
Отправлено blzz , 21-Фев-07 00:09 
а значение переменной LANG сильно влияет на символы в графиках? у меня rrdtool+hotsanic великолепно на ru_RU.UTF-8 рисует

"Русские символы в rrdtool"
Отправлено Андрей , 30-Мрт-09 16:30 
Помогите, пожалуйста, решить проблему. У меня на графиках вместо кирилицы рисуются перечеркнутые по диоганали прямоугольники. Подбор шрифтов результата не принес. Нашел здесь http://forums.cacti.net/about27938.html&highlight=cyrillic, что проблему можно решить с помощью функции, но, что за функция непонятно.

"Русские символы в rrdtool"
Отправлено BH , 15-Апр-09 13:39 
К чему изобретать велосипед, когда с помощью переменных окружения назначается нужная локаль. Пиши хоть по китайски.

Вот пример с "русскими" графиками: http://live.daemony.org/freebsd/rrdtools-usage-for-server-st...


"Русские символы в rrdtool"
Отправлено kostya , 18-Май-09 01:26 
>К чему изобретать велосипед, когда с помощью переменных окружения назначается нужная локаль.
>Пиши хоть по китайски.
>
>Вот пример с "русскими" графиками: http://live.daemony.org/freebsd/rrdtools-usage-for-server-st...

Чёт не работает!


"Русские символы в rrdtool"
Отправлено leo70 , 18-Авг-09 16:40 
rrdtool 1.3 + UTF8 система + UTF8 ttf шрифт нормально отображает русский на картинке. Если rrdtool 1.2 ниже то строку передаваемую rrdtool надо перекодировать в koi8r (например iconv) + шрифты koi8r