PowerShellを使ってLog InsightサーバにJSONデータを送りつけたのだが、日本語が正常に認識されない。
JSONデータ変換後のデータに対して「[System.Text.Encoding]::UTF8.GetBytes」のエンコードをしてやることで、UTF8のデータとして認識させることができる。
$loginsightserver = "IPアドレス" $loginsightagentID = "34859a98" $result="ジョブの結果" $jobid = [ordered]@{ name = "jobid" content = "ジョブのID" } $appid = [ordered]@{ name = "appid" content = "アプリのID" } $fields = @($jobid,$appid) $restcall = @{ messages = ([Object[]]($messages = [ordered]@{ text = $result fields = ([Object[]]$fields) })) } |convertto-json -Depth 4 $encodedrestcall= [System.Text.Encoding]::UTF8.GetBytes($restcall) Write-Host $restcall $resturl = ("http://" + $loginsightserver + ":9000/api/v1/messages/ingest/" + $loginsightagentID) write-host ("Posting results to Log Insight server: " + $loginsightserver) try { $response = Invoke-RestMethod $resturl -Method Post -Body $encodedrestcall -ContentType 'application/json' -ErrorAction stop write-host "REST Call to Log Insight server successful" write-host $response } catch { write-host "REST Call failed to Log Insight server" write-host $error[0] write-host $resturl }