簡體   English   中英

具有cyrrylic問題的Powershell,JSON和UTF8

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM