Добрый день всех
Возникла проблема с кодировками при добавлении нового host-а через API.
Добавляю через powershell, windows 2008 R2. Версия Zabbix - 2.4.0. Все добавляется нормально, но если в параметре name поставить русские буквы, то в они заменяются на знаки вопроса. А если тоже самое сделать через web - то все хорошо.
Подскажите, может кто сталкивался?
************************************************** ************************************************** **
Ответ нашел сам. Может кому потом поможет.
Для того, чтобы нормально отображались русские символы при работе с Zabbix через PowerShell в конце нужно массив, который вы будете отдавать как json преобразовать в utf-8.
Сделать это можно с помощью команды:
[System.Text.Encoding]::UTF8.GetBytes($json_array)
Вот пример скрипта:
Использую PowerShell 4.0
Возникла проблема с кодировками при добавлении нового host-а через API.
Добавляю через powershell, windows 2008 R2. Версия Zabbix - 2.4.0. Все добавляется нормально, но если в параметре name поставить русские буквы, то в они заменяются на знаки вопроса. А если тоже самое сделать через web - то все хорошо.
Подскажите, может кто сталкивался?
************************************************** ************************************************** **
Ответ нашел сам. Может кому потом поможет.
Для того, чтобы нормально отображались русские символы при работе с Zabbix через PowerShell в конце нужно массив, который вы будете отдавать как json преобразовать в utf-8.
Сделать это можно с помощью команды:
[System.Text.Encoding]::UTF8.GetBytes($json_array)
Вот пример скрипта:
Code:
$json_array = [System.Text.Encoding]::UTF8.GetBytes((@"
{
"jsonrpc": "2.0",
"method": "host.update",
"params": {
"hostid": "%hostid%",
"name": "%name%",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "%ip%",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "%groupid%"
}
],
"templates": [
{
"templateid": "10140"
}
]
},
"auth": "%authid%",
"id": 1
}
"@).Replace("%hostid%",($info.hostid)).replace("%name%",$market_info.name).replace("%ip%",$ip).replace("%groupid%",$GroupID).Replace("%authid%",(Get-ZabbixConnect)))
Invoke-RestMethod -Method Post -Uri "$resource" -Body $json_array -ContentType application/json-rpc
Comment