本文介绍了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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!