Долгое время читал данный форум, прежде чем созрел написатьмного чего перепробовал из описанного выше, но так и не добился нормальной работы связки OCS+GLPI, поэтому хочу поделиться своим решением из серии "давайте через жопу" :)
не решился пересобирать агента под винду, т.к. раньше не было такого опыта и собственно не силен в этом, поэтому просто использую OCSNG_WINDOWS_AGENT_1.02_RC2_OTEA с их сайта
на сервере установлен Slackware 11 + все необходимые компоненты
OCSNG_UNIX_SERVER_1.02_RC1
glpi-0.70.2
1. Проблема отображения русских букв в название железа и программ решилась как описывает Dreamkeeper:
> В "морде" OCS правим файлы:
> В prefrences.php
> define("UTF8_DEGREE", 1 );
> В machine.php в стр. 134 вместо TextDecode ипользовать utf8_decode
> Для корректного отображения ПО использовать функцию htmlentities(<Переменная>,ENT_COMPAT,UTF) (в функции print_softwares() файла machine.php).
Таким образом получаем корректное отображение всей собранной информации в OCS, но проблему экспорта в glpi такие танцы с бубном не решили, т.к. в самой базе русские буквы храняться в виде иероглифов(так и смог понять в какой оно кодировке)
Решил эту проблему следующим образом:
Создал еще одну базу(для транзита данных) и скрипт который делает экспорт из рабочей базы OCS затем перекодирует данные и вносит их в "транзитную" базу, а glpi настроен не на рабочую базу OCS а как раз на "транзитную".
Еще в /inc/ocsng.class.php в строке 50 поменял $this->dbenc="latin1"; на $this->dbenc="ISO-8859-1";
Вот собственно скрипт:
#!/bin/sh
mysqldump -a --skip-set-charset ocsweb > /tmp/conv/ocsweb.sql
echo "/*!40000 SET NAMES cp1251 */;" > /tmp/conv/ocsweb1.sql
iconv -f UTF-8 -t ISO-8859-1 /tmp/conv/ocsweb.sql >> /tmp/conv/ocsweb1.sql
mysql ocsweb1 < /tmp/conv/ocsweb1.sql
Может кому-нибудь поможет.