如何在PowerShell中将带有特殊字符的字符串转换为JSON对象

utugiqy6  于 2023-07-01  发布在  Shell
关注(0)|答案(1)|浏览(116)

我正在尝试使用powershell将从aws cli检索到的json字符串转换为json对象。但是在某些情况下,字符串包含无法解码的特殊字符:

'charmap' codec can't encode character '\u2192' in position 681: character maps to <undefined>

完整的错误是:

ConvertFrom-Json: Scripted.ps1:18:19
Line |
  18 |      $res = $res | ConvertFrom-Json
     |                    ~~~~~~~~~~~~~~~~
     | Conversion from JSON failed with error: Unexpected end when reading token. Path 'Findings[98]'.

我使用的代码是:

$res = aws securityhub get-findings
$res = $res | ConvertFrom-Json

有没有办法删除这个字符或正确解码?
在@bcbabrich回答之后,我补充道:

$enc = [System.Text.Encoding]::UTF8
$res = aws securityhub get-findings
$decoded = $enc.GetBytes($res)
$encoded = [System.Text.Encoding]::UTF8.GetString($decoded)
$encoded = $encoded | ConvertFrom-Json
$res = $encoded

但我还是犯了同样的错误。
问候Q

dfddblmv

dfddblmv1#

我相信您需要使用UTF8aws securityhub get-findings的输出进行编码。试试这个:

$enc = [System.Text.Encoding]::UTF8
$res = aws securityhub get-findings
$res = $enc.GetBytes($res)
$res = $res | ConvertFrom-Json

相关问题