The OpenNET Project / Index page

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

Русские символы в rrdtool
При отображении строк в 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))
 
01.02.2007 , Автор: Vladimir
Ключи: rrd, rus, patch / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Русификация

Обсуждение [ RSS ]
  • 1.1, x0x01 (?), 11:22, 01/02/2007 [ответить]  
  • +/
    есть несколько другой путь, использовать при рендере графика русский koi8 ttf шрифт:
    --font DEFAULT:10:/usr/share/fonts/koi8-ttf/TIMESI8.TTF
     
  • 1.2, denis (??), 14:39, 03/02/2007 [ответить]  
  • +/
    Или в юникоде писать просто :)
     
     
  • 2.3, const86 (ok), 22:15, 04/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    > Или в юникоде писать просто :)

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

     

  • 1.4, blzz (?), 00:09, 21/02/2007 [ответить]  
  • +/
    а значение переменной LANG сильно влияет на символы в графиках? у меня rrdtool+hotsanic великолепно на ru_RU.UTF-8 рисует
     
  • 1.5, Андрей (??), 16:30, 30/03/2009 [ответить]  
  • +/
    Помогите, пожалуйста, решить проблему. У меня на графиках вместо кирилицы рисуются перечеркнутые по диоганали прямоугольники. Подбор шрифтов результата не принес. Нашел здесь http://forums.cacti.net/about27938.html&highlight=cyrillic, что проблему можно решить с помощью функции, но, что за функция непонятно.
     
  • 1.6, BH (?), 13:39, 15/04/2009 [ответить]  
  • +/
    К чему изобретать велосипед, когда с помощью переменных окружения назначается нужная локаль. Пиши хоть по китайски.

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

     
     
  • 2.7, kostya (??), 01:26, 18/05/2009 [^] [^^] [^^^] [ответить]  
  • +/
    >К чему изобретать велосипед, когда с помощью переменных окружения назначается нужная локаль.
    >Пиши хоть по китайски.
    >
    >Вот пример с "русскими" графиками: http://live.daemony.org/freebsd/rrdtools-usage-for-server-stats-full-manual-b

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

     

  • 1.8, leo70 (??), 16:40, 18/08/2009 [ответить]  
  • +/
    rrdtool 1.3 + UTF8 система + UTF8 ttf шрифт нормально отображает русский на картинке. Если rrdtool 1.2 ниже то строку передаваемую rrdtool надо перекодировать в koi8r (например iconv) + шрифты koi8r
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




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

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