You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell使用ConvertTo-Json时&被转义为\u0026如何解决

避免PowerShell ConvertTo-Json转义&符号的方案

PowerShell 内置ConvertTo-Json命令默认会对HTML敏感字符(&、<、>等)做Unicode转义处理,因此你会看到&被转换为\u0026的情况,可根据你使用的PowerShell版本选择对应方案解决:

  • 若使用PowerShell 7及以上版本
    直接在ConvertTo-Json后添加-EscapeHandling参数,指定为EscapeNonAscii即可实现仅转义非ASCII字符,不对ASCII范围内的HTML敏感字符转义,修改后的完整代码如下:

    $getvalue= 'true&amp;amp;replicaSet=users-shard-0&amp;amp;authSource=adsfsdfin&amp;amp;readPreference=neasrest&amp;amp;maxPoolSize=50&amp;amp;minPoolSize=10&amp;amp;maxIdleTimeMS=60'
    $getvalue = $getvalue -replace '&amp;amp;','&'
    $pathToJson = 'C:\1\test.json'
    $a = Get-content -Path $pathToJson | ConvertFrom-Json
    $a.connectionStrings.serverstring=$getvalue
    $a | ConvertTo-Json -EscapeHandling EscapeNonAscii | Set-content $pathToJson -ErrorAction SilentlyContinue
    

    如果你完全不需要任何字符转义,也可以将参数值替换为None。

  • 若使用PowerShell 5.1及更早版本
    老版本没有内置-EscapeHandling参数,可选择两种适配方案:

    1. 手动替换转义后的字符,仅修改最后一行序列化写入代码即可:
    ($a | ConvertTo-Json) -replace '\\u0026', '&' | Set-content $pathToJson -ErrorAction SilentlyContinue
    

    如果你还需要保留其他HTML敏感字符,可以同步添加替换规则,例如-replace '\\u003c', '<' -replace '\\u003e', '>'。
    2. 调用.NET的JSON序列化库自定义配置,例如使用Newtonsoft.Json库,配置序列化时关闭HTML字符转义即可。

内容的提问来源于stack exchange,提问作者microset

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 05:18:02