2013-03-08 19 views
6

Invoke-WebRequestを使用してASP .NET MVC4 APIコントローラに特殊文字(ノルウェー語)を送信しようとしています。Invoke-WebRequest - jsonの特殊文字に関する問題

私の問題は、私の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の箱のように上げます。

同じAPIコントローラにシオマネキからJSONデータを送信するには、細かい

何かアドバイスを作品?

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

PowerShellで文字列がUnicodeであるが、私はあなたがそれをUTF8になっていくつかの助けを与える必要があると思うので、あなたは、UTF8エンコーディングを指定した:

+0

問題を絞り込むためにFiddlerを試してみることはできますか? –

+0

'POST http:// localhost:51212/api/HTTP/1.1を追加 \tユーザエージェント:Mozilla/5.0(Windows NT; Windows NT 6.1; nb-NO)WindowsPowerShell/3.0 \tコンテンツタイプ:application/json ;文字セット= UTF-8 \tホスト:localhostを:51212 \tのContent-Length:3 \t \t ' –

答えて

19

Bodyパラメータについては、これを試してみてください。

+0

私はPSファイルはUTF8であるため、文字列がすでにUTF8たことを考えるのmisbeliefにあった、ありがとう。 –

+1

@Keith Hill、この回答は、私が似たような問題にぶつかったときに私を完全に助けてくれました。問題はUnicode - > UTF8だとは思っていませんでした。 +1 –

関連する問題