[英]Powershell , JSON and UTF8 with cyrrylic problems
我有一些帶有JSON的網站。 JSON在utf8代碼頁中(如在RFC中)
Web服務器答案:Content-Type:application / json; 字符集= utf-8的
我需要轉換它並發送給scom代理。 一切都好,只是powershell將任何西里爾符號摧毀為'?'
$api = New-Object -comObject 'MOM.ScriptAPI'
$discoveryData = $api.CreateDiscoveryData(0, $sourceId, $managedEntityId)
$browser = New-Object System.Net.WebClient
$browser.Proxy.Credentials =[System.Net.CredentialCache]::DefaultNetworkCredentials
$rowdata = Invoke-WebRequest 'https://monitoring.net/monitoring.json' -UseBasicParsing
$jsondata = ConvertFrom-Json $rowdata
foreach ($urls in $jsondata.monitors)
{
$instance = $discoveryData.CreateClassInstance("$MPElement[Name='58MCLibrary!F.058MC.Json.Url.Class']$")
$instance.AddProperty("$MPElement[Name='058MCLibrary!058MC.Json.Url.Class']/Name$", $urls.name)
$instance.AddProperty("$MPElement[Name='58MCLibrary!058MC.Json.Url.Class']/Resource$", $urls.resource)
$instance.AddProperty("$MPElement[Name='058MCLibrary!058MC.Json.Url.Class']/Description$", $urls.description)
$discoveryData.AddInstance($instance)
}
$discoveryData
故事是$ urls.name和$ urls.resource都沒問題 - 沒有cyrrylic
但$ urls.description看起來像描述?????????????????????????????????????????? ?????????? ?????????????? ??????????。 ????????????????????
有什么辦法解決嗎? 我嘗試用.NET將默認的env代碼頁設置為utf8 - 沒有變化......
在PS中看到代碼頁問題很奇怪...
$ rowdata = Invoke-WebRequest'123 / monitoring.json'-UseBasicParsing
$ utf8_ready_data = [system.Text.Encoding] :: UTF8.GetString($ rowdata.RawContentStream.ToArray());
看起來Invoke-WebRequest在2016年討厭utf8 ..
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.