【问题标题】:Json Encoding HTML stringJson 编码 HTML 字符串
【发布时间】:2013-03-12 11:47:04
【问题描述】:

我目前正在从 PowerShell 脚本生成 JSON 文件,但它输出的是 Unicode 而不是特殊字符,例如“

这是我得到的输出:

[
    {
        "Id":  "187303",
        "LinkText":  "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)"
    },
    {
        "Id":  "187305",
        "LinkText":  "\u003cb style =color:#d11717;\u0027\u003eAnnual General Meeting (MEET)"
    }
]

这是我正在使用的代码:

$(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"

【问题讨论】:

    标签: json powershell powershell-3.0


    【解决方案1】:

    Out-File 在这里不是罪魁祸首,它准确地写入了 ConverTo-Json 产生的内容。但是,如果将输出通过管道传输到 ConvertFrom-Json,它就可以正常工作。确定有问题吗?

    【讨论】:

      【解决方案2】:

      我没有看到用于防止发生这种转换的内置参数。这是一种将 unicode 字符转换回的解决方法:

      [regex]::replace($json,'\\u[a-fA-F0-9]{4}',{[char]::ConvertFromUtf32(($args[0].Value -replace '\\u','0x'))})
      

      【讨论】:

      猜你喜欢
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2010-11-09
      • 2022-01-23
      • 1970-01-01
      • 2012-07-15
      相关资源
      最近更新 更多