Invoke-WebRequest - json中的特殊字符问题

时间:2013-03-08 09:01:12

标签: powershell asp.net-mvc-4

我正在尝试使用Invoke-WebRequest将特殊字符(挪威语)发送到ASP .NET MVC4 API控制器。

我的问题是,如果我的json数据包含像ÆØÅ这样的字符,json对象在被控制器接收时会显示为NULL。

我的代码示例:

$text = 'Æ Ø Å'
$jsondata = $text | ConvertTo-Json
Invoke-WebRequest -Method POST -Uri http://contoso.com/create -ContentType 'application/json; charset=utf8' -Body $jsondata

同样在寻找小提琴手时,人物会像通常奇怪的utf8盒子一样出现。

从fiddler向同一个API控制器发送json数据工作正常

有什么建议吗?

1 个答案:

答案 0 :(得分:24)

对于Body参数,请尝试以下操作:

... -Body ([System.Text.Encoding]::UTF8.GetBytes($jsondata))

PowerShell中的字符串是Unicode,但是您已经指定了UTF8编码,因此我认为您需要为UTF8提供一些帮助。