2013-03-08 63 views
6

我想用Invoke-WebRequest發送特殊字符(挪威語)到ASP .NET MVC4 API控制器。Invoke-WebRequest - 用json中的特殊字符問題

我的問題是,當控制器接收到json對象時顯示爲NULL,如果我的json數據包含字符如ØØÅ。

我的代碼示例:

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

此外,在小提琴手尋找當主角變成像平時怪異UTF8盒。

發送JSON數據從小提琴手相同的API控制器正常工作

有什麼建議?

+0

你可以嘗試並提起小提琴來縮小問題的範圍嗎? – 2013-03-08 09:04:14

+0

'POST http:// localhost:51212/api/Add HTTP/1.1 User-Agent:Mozilla/5.0(Windows NT; Windows NT 6.1; ;字符集= UTF-8 \t主機:本地主機:51212 \t的Content-Length:3 \t \t' – 2013-03-08 09:30:46

回答

19

對於Body參數試試這個:

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

在PowerShell中的字符串是Unicode,但你已經指定了UTF8編碼,所以我覺得你需要給它一些幫助越來越爲UTF8。

+0

謝謝你,我就在想,該字符串已經是UTF8,因爲PS文件是UTF8的misbelief 。 – 2013-03-11 07:26:29

+1

@凱斯山,當我遇到類似的問題並且避免了很多痛苦時,這個答案完全救了我。我不會認爲這個問題是Unicode - > UTF8。 +1 – 2016-05-28 19:41:50