【问题标题】:Invoke-RestMethod utf8 characters?Invoke-RestMethod utf8 字符?
【发布时间】:2022-04-06 03:56:03
【问题描述】:

我正在从Invoke-RestMethod 执行 PUT,而端点不喜欢我的瑞典字符 åäö。 我已经从我的 Windows CMD 窗口上下载的 curl 进行了验证,并得到了相同的结果错误 400。奇怪的是它可以在我的机器上使用 PostMan。 它可能与utf8和BOM有关吗?试图从我的字符串中删除它,但没有帮助。

不工作:

{    "User":  {
                 "email":  "xxxxx@domain.com",
                 "last_name":  "Åkesson",
                 "first_name":  "Thomas",
                 "enabled":  true
             }
}

工作:

{
    "User":  {
                 "email":  "xxxxx@domain.com",
                 "last_name":  "akesson",
                 "first_name":  "Thomas",
                 "enabled":  true
             }
}

我的问题似乎与Changing PowerShell's default output encoding to UTF-8 有关? 或者端点本身可能有一些错误?

【问题讨论】:

    标签: json powershell encoding


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      对我来说,这种方法很有效(场景是从 WordPress 中提取的)。请参阅下面的 Get-Content 'file path' -Encoding UTF8。也许首先输出到 XML 是这里的关键?

      #GET WordPress posts.
      Invoke-RestMethod -Uri 'https://wordpress.com/category/feed/' -OutFile C:\PowerShell\MakeFeed.xml
      #NOTE -Encoding UTF8 is crucial here / otherwise bad characters for superscript, quotes, etc.
      [xml]$Content = Get-Content C:\PowerShell\MakeFeed.xml -Encoding UTF8
      

      【讨论】:

        猜你喜欢
        • 2016-06-21
        • 2015-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多