PowerShell Invoke-WebRequest POST のエンコードが間違っている 質問する

PowerShell Invoke-WebRequest POST のエンコードが間違っている 質問する

テキスト データを送信するために Invoke-WebRequest POST メソッドを使用しています。テキストを間違ったエンコードで送信した後。

脚本:

$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"

ベストアンサー1

これは私にとってはうまくいきました:

$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"

追加する文字セット=utf-8鋭アクセント文字が特殊記号に変換される問題を修正しました。

おすすめ記事