本文介绍了PowerShell Invoke上的编码错误-WebRequestPOST的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Invoke-WebRequestPOST方法来发送文本数据。以错误的编码发送文本后。

脚本:

$postData = "žluťoučký kůň úpěl ďábelské ódy"
Invoke-WebRequest -Uri 'http://www.mydomain.com/' -Method Post -Body $postData -ContentType "text/plain; charset=utf-8"

小提琴手:

POST http://www.mydomain.com/ HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 6.2; cs-CZ) WindowsPowerShell/4.0
Content-Type: text/plain; charset=utf-8
Host: www.mydomain.com
Content-Length: 31

zlutouck� kun �pel d�belsk� �dy

编辑

似乎有必要首先将文本转换为UTF8。默认情况下,PowerShell ISE使用不同的编码。在我的情况下,Windows-1250。

$text = "žluťoučký kůň úpěl ďábelské ódy"
$postData = [System.Text.Encoding]::UTF8.GetBytes($text)
Invoke-WebRequest -Uri 'http://www.mydomain.com/' -Method Post -Body $postData -ContentType "text/plain; charset=utf-8"

推荐答案

这对我有效:

$postData = "žluťoučký kůň úpěl ďábelské ódy"
Invoke-WebRequest -Uri 'http://www.example.com/' -Method Post -Body $postData 
 -ContentType "text/plain; charset=utf-8"

添加Charset=utf-8解决了将急性重音字符转换为特殊符号的问题。

这篇关于PowerShell Invoke上的编码错误-WebRequestPOST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 11:45