Ich verwende Invoke-WebRequest POST-Methode, um Textdaten zu senden. Nach dem Senden des Textes in einer falschen Codierung.Falsche Codierung auf PowerShell Invoke-WebRequest POST
Script:
$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"
Fiedler:
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
Herausgegeben:
Es scheint, dass es notwendig ist, zuerst den Text in UTF-8 zu konvertieren. PowerShell ISE verwendet standardmäßig eine andere Codierung. In meinem Fall, 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"
Bitte posten Sie Ihre Bearbeitung als Antwort auf Ihre Frage; [So machen wir Dinge hier] (https://stackoverflow.com/help/self-answer). – sleblanc
'[System.Text.Encoding] :: UTF8.GetBytes()' funktionierte nicht für mich. Ausgabe ist wie '[29, 118, 61, 80, 267 ...]' – Groosha