我正在尝试使用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数据工作正常
有什么建议吗?
答案 0 :(得分:24)
对于Body
参数,请尝试以下操作:
... -Body ([System.Text.Encoding]::UTF8.GetBytes($jsondata))
PowerShell中的字符串是Unicode,但是您已经指定了UTF8编码,因此我认为您需要为UTF8提供一些帮助。