Wrong encoding on PowerShell Invoke-WebRequest POST

前端 未结 2 445
难免孤独
难免孤独 2020-12-15 08:11

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 ď         


        
相关标签:
2条回答
  • 2020-12-15 08:49

    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
    
    0 讨论(0)
  • 2020-12-15 08:52

    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.

    0 讨论(0)
提交回复
热议问题