powershell - 使用 ConvertTo-JSON 创建 JSON 时出现非法字符 '?' a

标签 powershell

我不是 powershell 专家,如果我的问题令人困惑,请原谅。

我们正在使用 ConverTo-JSON 创建一个 JSON 文件,它成功地创建了 JSON 文件。但是,当我 cat JSON 的内容时,它有'??'在 json 文件的开头,但当我下载文件/在文件系统中查看文件时没有看到相同的内容。

下面是用于创建 JSON 文件的 powershell 代码:

$packageJson = @{
    packageName = "ABC.DEF.GHI"
    version = "1.1.1"
    branchName = "somebranch"
    oneOps = @{
        platform = "XYZ"
        component = "JNL"
    }
}

$packageJson | ConvertTo-Json -depth 100 | Out-File "$packageName.json"

上面的代码集成功地创建了文件,当我查看文件时,一切看起来都很好,但是当我 cat 文件时,它有前导 '??'如下图:

??{

    "packageName":  "ABC.DEF.GHI",

    "version":  "0.1.0-looper-poc0529",

    "oneOps":  {

                  "platform":  "XYZ",

                  "component":  "JNL"

               },

   "branchName":  "somebranch"

}

因此我无法解析 JSON 文件并给出以下错误:

com.jayway.jsonpath.InvalidJsonException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('?' (code 65533 / 0xfffd)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')

最佳答案

那些不是 ? 字符。这是构成 Unicode byte order mark 的两个不同的不可打印字符.您看到 ? 因为这是调试器、文本编辑器、操作系统或相关字体呈现不可打印字符的方式。

要解决此问题,请更改输出编码,或在另一端使用理解 UTF-8 的字符集。前者是a simpler fix ,但从长远来看,后者可能更好。最终您会得到需要扩展字符的数据。

关于powershell - 使用 ConvertTo-JSON 创建 JSON 时出现非法字符 '?' a,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52821806/

相关文章:

powershell - 为什么 PowerShell 脚本在提示输入时会暂停?

powershell - 存储多维数据以提高速度的最佳类型

powershell - 将if语句与管道命令一起使用

powershell - 自动化配置SQL Server 2017 Reporting Services

python - 为什么在运行我的 python 脚本时 powershell 会卡住一点

c# - 通过代理服务器连接到 Office365

powershell - 如何在 PowerShell 中获取当前文件位置

vba - 远程过程调用失败,无法调用空值表达式上的方法 - 重新启动后有效

sharepoint - 如何使用 Powershell 获取 Sharepoint 2010 中最后一次完全爬网的日期?

xml - 如何对XML文件进行以下编辑?