我试图在PowerShell中使用转换到-Json。默认情况下,“转换到-Json”将转义特殊字符。然而,它也逃不过中国人的责难。
例如:
"<>中文ABC" | ConvertTo-Json
输出是
"\u003c\u003e中文ABC"
但是,我真正想要的是"\u003c\u003e\u4e2d\u6587ABC“。有谁能分享经验吗?
发布于 2022-03-29 05:54:48
找到了一个方法:
function ConvertTo-Rtf
{
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline = $true)]
[string[]] $String
)
process
{
if ($null -eq $String) { $String = @() }
$stringBuilder = New-Object System.Text.StringBuilder
foreach ($s in $String)
{
$stringBuilder.Length = 0
foreach ($character in $s.GetEnumerator())
{
if ([int]$character -lt 0x7F)
{
$null = $stringBuilder.Append($character)
}
else
{
$null = $stringBuilder.AppendFormat('\u{0:x}', [int]$character)
}
}
$stringBuilder.ToString()
}
}
}
然后是@{name="ABC<中文>" } | ConvertTo-Json -Compress| ConvertTo-Rtf
输出:
{"name":"ABC\u003c\u4e2d\u6587\u003e"}
https://stackoverflow.com/questions/71656571
复制相似问题