I'm currently producing a JSON file from a PowerShell script but it is outputting Unicode instead of special characters such as '<' I need HTML in the LinkText but not sure how to change the encoding.
This is the output I'm getting:
[
{
"Id": "187303",
"LinkText": "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)"
},
{
"Id": "187305",
"LinkText": "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)"
}
]
This is the code that I'm using:
$(foreach ($row in $DataSet.Tables[0].Rows){
$stockShortName = $row[0].ToString().Trim()
$id = $row[0].ToString().Trim()
$linkText = "<b style =color:`#d11717;'>$event_description"
(New-Object PSObject |
Add-Member -PassThru NoteProperty Id $id |
Add-Member -PassThru NoteProperty LinkText $linkText
)
}) | ConvertTo-JSON | Out-File $OutputFile -Encoding "default"
I don't see a built-in parameter to prevent that conversion from happening. Here's a workaround that converts back unicode characters:
[regex]::replace($json,'\\u[a-fA-F0-9]{4}',{[char]::ConvertFromUtf32(($args[0].Value -replace '\\u','0x'))})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With