<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Отправка сообщений nxevent  в cp1251]]></title><description><![CDATA[<p dir="auto">Добрый день!</p>
<p dir="auto">Помогите пожалуйста разобраться в причине почему не отсылается русский текст (кодировка 1251) через nxevent на Linux сборке.</p>
<p dir="auto">Конфигурация</p>
<ol>
<li>Сервер. Linux SL 6.5. x86/Postgres. 1.2.16. netxms.conf-&gt;CodePage = CP1251</li>
<li>Клиент. Linux SL 6.5. x86. 1.2.16. --with-client  --with-all-static<br />
Сборку клиента делал в 2х вариантах: UNICODE и не UNICODE.</li>
</ol>
<p dir="auto">msg="Это текст"<br />
/usr/local/bin/nxevent -d -u user -P pass 1.1.1.1 SYS_TEST_OK "$msg"</p>
<p dir="auto">*debug* SendMsg("CMD_GET_SERVER_INFO", id:0)<br />
*debug* RecvMsg("CMD_REQUEST_COMPLETED", id:0)<br />
*debug* SendMsg("CMD_LOGIN", id:1)<br />
*debug* RecvMsg("CMD_LOGIN_RESP", id:1)<br />
*debug* SendMsg("CMD_TRAP", id:2)<br />
*debug* RecvMsg("CMD_REQUEST_COMPLETED", id:2)<br />
*debug* Network receiver thread stopped</p>
<p dir="auto">На сервер сообщение приходит без текста сообщения.</p>
<p dir="auto">  ** 00130000000000800000000200000006<br />
  ** 00000018000000000000000000000000<br />
  ** 000000A9010000000000001600530059<br />
  ** 0053005F0054004500530054005F004F<br />
  ** 004B000019BE01000000000300BF0100<br />
  ** 00000000281291090000012A01000000<br />
  ** 0000000010F290090000005803000001<br />
  ** 00008000010000000000000001000000<br />
  ** code=0x0013 (CMD_TRAP) flags=0x0000 id=2 size=128 numFields=6<br />
  ** [    24] INT32  0<br />
  ** [   169] STRING "SYS_TEST_OK"<br />
  ** [     3] INT32  0<br />
  ** [   298] STRING ""<br />
  ** [    88] INT16  1<br />
  ** [ 32768] STRING ""</p>
<p dir="auto">Использовал разные варианты LANG и iconv (-f utf8 -t cp1251, -f cp1251 -t utf8) на клиенте - не помогает.</p>
<p dir="auto">Сделал в nxevent.cpp дополнительную отладку для вывода строки сообщения перед вызовом NXCSendEvent - мой  $msg присутствует в той кодировке, которая ушла из скрипта. Добавил оладку (dump)  перед отправкой сообщения в session.cpp Похоже теряется уже где-то внутри:</p>
<p dir="auto">...<br />
*debug* RecvMsg("CMD_LOGIN_RESP", id:1)<br />
Message to be send: Это текст<br />
*debug* SendMsg("CMD_TRAP", id:2)<br />
*debug* Raw data:<br />
  ** 00130000000000800000000200000006<br />
  ** 00000018000000000000000000000000<br />
  ** 000000A9010000000000001600530059<br />
  ** 0053005F0054004500530054005F004F<br />
  ** 004B6D7341BE01000000000300BF0100<br />
  ** 0000000000A262080000012A01000000<br />
  ** 00000000E88162080000005803000001<br />
  ** 00008000010000000000000001000000<br />
  ** code=0x0013 (CMD_TRAP) flags=0x0000 id=2 size=128 numFields=6<br />
  ** [    24] INT32  0<br />
  ** [   169] STRING "SYS_TEST_OK"<br />
  ** [     3] INT32  0<br />
  ** [   298] STRING ""<br />
  ** [    88] INT16  1<br />
  ** [ 32768] STRING ""<br />
*debug* RecvMsg("CMD_REQUEST_COMPLETED", id:2)<br />
...<br />
При этом из Windows клиентов все работает (установка из готовой сборки 1.2.16).</p>
<p dir="auto">Заранее спасибо</p>
]]></description><link>https://forum.netxms.org/topic/3416/отправка-сообщений-nxevent-в-cp1251</link><generator>RSS for Node</generator><lastBuildDate>Fri, 13 Nov 2026 16:13:47 GMT</lastBuildDate><atom:link href="https://forum.netxms.org/topic/3416.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Oct 2014 17:21:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Отправка сообщений nxevent  в cp1251 on Mon, 10 Nov 2014 09:40:08 GMT]]></title><description><![CDATA[<p dir="auto">Сработало, спасибо.<br />
Изменения nxevent.cpp через command_line</p>
<p dir="auto">static TCHAR m_szCP[MAX_DB_STRING] = _T("");<br />
//...<br />
while((ch = getopt(argc, argv, "deho:P:T:u:c:vw:")) != -1)<br />
//...<br />
"   -c &lt;codepage&gt; : Specify codepage (default UTF8).\n"<br />
//...<br />
         case 'c':<br />
#ifdef UNICODE<br />
                MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, optarg, -1, m_szCP, MAX_DB_STRING);<br />
                m_szCP[MAX_DB_STRING - 1] = 0;<br />
#else<br />
            nx_strncpy(m_szCP, optarg, MAX_DB_STRING);<br />
#endif<br />
            SetDefaultCodepage(m_szCP);<br />
            break;<br />
//...</p>
<p dir="auto">Вызов:<br />
nxevent -u user -P pass -c CP1251 1.1.1.1 SYS_TEST_OK "Это тест"</p>
<p dir="auto">для нормального отображения символов в CL<br />
LANG=ru_RU.cp1251<br />
export LANG</p>
]]></description><link>https://forum.netxms.org/post/15297</link><guid isPermaLink="true">https://forum.netxms.org/post/15297</guid><dc:creator><![CDATA[IFriendly]]></dc:creator><pubDate>Mon, 10 Nov 2014 09:40:08 GMT</pubDate></item><item><title><![CDATA[Reply to Отправка сообщений nxevent  в cp1251 on Fri, 07 Nov 2014 19:50:44 GMT]]></title><description><![CDATA[<p dir="auto">Виктор,</p>
<p dir="auto">Спасибо за информацию, добавлю.<br />
Отпишусь о результатах.</p>
]]></description><link>https://forum.netxms.org/post/15292</link><guid isPermaLink="true">https://forum.netxms.org/post/15292</guid><dc:creator><![CDATA[IFriendly]]></dc:creator><pubDate>Fri, 07 Nov 2014 19:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to Отправка сообщений nxevent  в cp1251 on Tue, 04 Nov 2014 19:53:11 GMT]]></title><description><![CDATA[<p dir="auto">Проблема в том, что nxevent не выставляет code page, и внутренние функции вызывают iconv используя ASCII. Я добавлю возможность выставлять code page для утилит. Как workaround можно добавить в main() в nxevent строчку</p>
<p dir="auto">SetDefaultCodepage("CP1251");</p>
]]></description><link>https://forum.netxms.org/post/15224</link><guid isPermaLink="true">https://forum.netxms.org/post/15224</guid><dc:creator><![CDATA[victor]]></dc:creator><pubDate>Tue, 04 Nov 2014 19:53:11 GMT</pubDate></item></channel></rss>