在invoke-webrequst中$body编码无法识别中文


PowerShell交流中心在invoke-webrequst中$body编码无法识别中文
0
milo.wang asked 8年 ago

$body=”测试”
$postData = [System.Text.Encoding]::unicode.GetBytes($body)
Invoke-WebRequest http://www.baidu.com -WebSession $fb -body $postData -Method Post

网址是随便输的,想实现上传的$body中能识别中文,目前测试下来有问题,应该是编码问题

0 Answers
0
Mooser Lee 管理员 answered 8年 ago

试试[System.Text.Encoding]::UTF8

milo.wang replied 8年 ago

测试了下还是会乱码,尝试了下加上ContentType参数,还是转换不成功,我这个其实是个发送短信的网址,短信收到都是乱码

Mooser Lee 管理员 replied 8年 ago

你这个网址期望什么样的编码呢?在读取http reques中的数据流时,是以什么样的格式读取的,这个很重要。另外,服务端是web service,还是wcf,还是odata service。其次是不是需要子啊request header中定义一些键值对。-Headers 参数,等

milo.wang replied 8年 ago

Invoke-WebRequest http://my.com/sms/send -WebSession $fb -body $body -Method Post -ContentType “application/x-www-form-urlencoded; charset=UTF-8” 我把$body通过在线的编码转换转成urlencoded的形式可以实现,我想直接通过powershell去转成urlencoded的编码$content=[System.Web.HttpUtility]::UrlEncode($body) 我试了下用这条命令,还是不行

milo.wang replied 8年 ago

已成功,$content=[System.Web.HttpUtility]::UrlEncode($body) 还是通过这命令去转的编码,但是前面一段不需要转的我后来做了字符串的拼接

Mooser Lee 管理员 replied 8年 ago

感谢分享