I\'m using Invoke-WebRequest POST method to send an text data. After sending the text in a wrong encoding.
Script:
$postData = \"žluťoučký kůň úpěl ď
I had to do two things to solve the problem. Encode the body and add the charset to the header:
$body = [System.Text.Encoding]::UTF8.GetBytes($body);
$headers = @{
"Content-Type"="application/json; charset=utf-8";
"OData-MaxVersion"="4.0";
"OData-Version"="4.0";
};
Invoke-WebRequest -Uri "$($odataEndpoint)systemusers($userid)" -Method PATCH -Headers $headers -Body $body -UseDefaultCredentials
This worked for me:
$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"
Adding the charset=utf-8 fixed my issue where the acute accent characters were getting converted to special symbols.