让OCSNG支持简体中文并导入GLPI中文也正常显示
OCS inventory-ng以及GLPI是免费的实现IT管理不错的选择,只是由于ocsng一直没有直接支持中文,故老是看着乱码不爽,经过修改agent文件等步骤后,终于消除了中文乱码,看着熟悉的简体中文,真不错,特分享下步骤:

OCSNG中文支持说明

1、gb2312.enc 保存至 ..\xampp\perl\lib\XML\Parser\Encodings 文件夹内;

2、更改如下文件及其内容:

(1)、 ..\xampp\htdocs\ocsreports\languages 文件夹内的文件 english.txt 中iso-8859-9 修改为 utf-8;或者直接用CHS Server 内的同名文件替换;当然也可以找面中国国旗来专门弄份chinese ocs web console!

(2)、 ..\xampp\htdocs\ocsreports 文件夹内的文件 machine.php 中显示软件列表的代码修改 (删除 htmlentities ),已修改文件附在 CHS Server 文件夹内,修改后保存即可或直接用已修改的 machine.php 覆盖原文件;

(3)、 ..\xampp\OCS Inventory NG 文件夹内的DTD 文件夹用CHS Server 内的文件夹 DTD 覆盖; (经实际测试,此步骤可省略掉,不影响系统正常支持中文)

(4)、最后用HEXEdit 把文件夹 .\Program Files\OCS Inventory Agent 内的文件 OCSInventory.exe 中 ISO-8859-1 修改为 gb2312 ;

完成这些步骤之后,在OCSNG管理后台查看所有中文信息都正常显示了,不再是乱码!!附上截图:


如图所示!!

OCSNG管理后台全部正确显示中文,且在将数据同步导入GLPI数据库后,在GLPI数据库内便是正确的中文,故GLPI中亦完全正确显示!!后又尝试将ocsng的数据库整理改为utf8,但是始终无法在ocs数据库内直接存储中文,搞不清楚怎么回事,试了gb2312也不行!等待官方发布新版本吧!

终于可以安心地用这套 Open Computer and Software Inventory 了!

文中提及的软件网上可下载,若有需要的可在此回复邮箱地址!

更新,OCSNG WebConsole中操作系统的注册用户名、注册组织、计算机描述以及个别CPU型号中文显示问题:

关于网友webshare提到的像操作系统的注册用户名、注册组织、计算机描述以及个别CPU型号中的中文显示问题,调整文件 preferences.php 中的utf-8为1后便显示正常了,但是软件等其他本来正常的又乱码了!!看来还是有希望能修复这些项目的乱码问题!!


后来经过察看源文件所带的字符转换功能项,只要对 machine.php 文件再做如下修改便可以正常显示“操作系统的注册用户名、注册组织、计算机描述以及个别CPU型号”中的中文字符了!
具体修改如下:

echo "<table width='90%' align='center' border='0' bgcolor='#C7D9F5'>";
echo "<tr>".$tdhd.$l->g(274).$tdhf.$tdhdpb.textDecode($item->OSNAME).$tdhfpb."</tr>";
echo "<tr>".$tdhd.$l->g(275).$tdhf.$tdhdpb.textDecode($item->OSVERSION).$tdhfpb."</tr>";

echo "<tr>".$tdhd.$l->g(286).$tdhf.$tdhdpb.utf8_decode($item->OSCOMMENTS).$tdhfpb."</tr>"; //更改 textDecode 为 uft8_decode

echo "<tr>".$tdhd.$l->g(51).$tdhf.$tdhdpb.utf8_decode($item->WINCOMPANY).$tdhfpb."</tr>";//更改 textDecode 为 uft8_decode

echo "<tr>".$tdhd.$l->g(348).$tdhf.$tdhdpb.utf8_decode($item->WINOWNER).$tdhfpb."</tr>";//更改 textDecode 为 uft8_decode

echo "<tr>".$tdhd.$l->g(111).$tdhf.$tdhdpb.textDecode($item->WINPRODID).$tdhfpb."</tr>";
echo "<tr>".$tdhd.$l->g(553).$tdhf.$tdhdpb.textDecode($item->WINPRODKEY).$tdhfpb."</tr>";
echo "<tr>".$tdhd.$l->g(357).$tdhf.$tdhdpb.textDecode($item->USERAGENT).$tdhfpb."</tr>";
echo "</table></td></tr></table>";
个别CPU型号:
    echo "$td3".utf8_decode($item->PROCESSORT)."</td>
//更改 textDecode 为 uft8_decode
          $td3".textDecode($item->PROCESSORS)."</td>
          $td3".textDecode($item->PROCESSORN)."</td>";

OCSNG Agent 对某些CPU还是不支持的,根本认不出来。

修改后所有这些本来显示乱码的项目就正常了!但是在GLPI数据库中仍旧是乱码,有时间了再看看是不是可以彻底的解决掉!