rest - 如何使用 REST API 的 powershell 对德语字符(如 ü)进行编码?
问题描述
我通过将从 AD 收集的数据发布到启用了 REST API 的门户网站来从 PowerShell 脚本创建用户,使用:
$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -Body $body
其中 $body 是 JSON 格式的 propper 有效负载,如下所示:
{
"email" : "klaus.mueller@domain.com",
"firstname" : "Klaus",
"lastname" : "Müller",
"active" : "true",
"superadmin" : "false"
}
如果名称中没有德语字母,则一切正常并创建用户。当有德语字符时,我得到 400 : Bad Request response from server。
我可以通过设置编码以某种方式改变 Invoke-RestMethod 的行为,或者它的服务器可能配置为不接收 de 字符吗?
解决方案
正如@Keith Hill 所说
PowerShell 中的字符串是 Unicode,但您已经指定了 UTF8 编码,所以我认为您需要帮助它获取 UTF8。
虽然链接的线程引用了 Invoke-WebRequest,但编码对于 Invoke-RestMethod 应该仍然有效。
您的请求应如下所示
$response = Invoke-RestMethod -Method Post -Uri $url -Headers $headers -Body ([System.Text.Encoding]::UTF8.GetBytes($body))
推荐阅读
- python - 使用 google-cloud-ml-engine 笔记本时如何安装 python 依赖项?
- powershell - 从 Blue Prism 通过命令行获取进程 sessionid
- firebase - Firestore 规则 - 获取请求参数的大小
- django - 如何通过 django 上传自定义的 excel 文件?
- ionic-framework - 离子 4 段模式 =“md”检查不工作
- java - 如何用以下更改替换以下代码。请看代码片段
- mysql - 如何解析 mysql 表以在 Node.JS 中进行父子关系?
- c - install_man() 不采用生成文件的路径
- python-3.x - PySide2 v5.12:单击按钮创建 FileDialog
- python - 尝试从 `opencensus.ext.stackdriver` 安装和导入 `stats_exporter` 时的故障排除