调用-RestMethod utf8 字符?

use*_*275 4 powershell encoding json

我\xc2\xb4m 执行 PUT Invoke-RestMethod,端点不喜欢我的瑞典字符 \xc3\xa5\xc3\xa4\xc3\xb6。\n我已经从 Windows CMD 窗口上下载的curl 进行了验证,并得到了相同的结果结果错误 400。奇怪的是它在我的机器上通过 PostMan 运行。\n它可能与 utf8 和 BOM 有关吗?尝试将其从我的字符串中删除,但它没有\xc2\xb4t帮助。

\n\n

不工作:

\n\n
{    "User":  {\n                 "email":  "xxxxx@domain.com",\n                 "last_name":  "\xc3\x85kesson",\n                 "first_name":  "Thomas",\n                 "enabled":  true\n             }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在职的:

\n\n
{\n    "User":  {\n                 "email":  "xxxxx@domain.com",\n                 "last_name":  "akesson",\n                 "first_name":  "Thomas",\n                 "enabled":  true\n             }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

对我来说,问题似乎与将 PowerShell 的默认输出编码更改为 UTF-8有关?\n或者端点本身是否存在一些错误?

\n

use*_*275 12

用这一行解决了它:

$body = [System.Text.Encoding]::UTF8.GetBytes($json)
Run Code Online (Sandbox Code Playgroud)

答案:微软:Invoke-RestMethod 和 UTF-8 数据