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

Tho*_*s B 7 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
Run Code Online (Sandbox Code Playgroud)

此外,当看到提琴手时,人物会像通常奇怪的utf8盒子一样出现.

将fson数据从fiddler发送到同一API控制器工作正常

有什么建议?

Kei*_*ill 25

对于Body参数,试试这个:

... -Body ([System.Text.Encoding]::UTF8.GetBytes($jsondata))
Run Code Online (Sandbox Code Playgroud)

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

  • @Keith Hill,当我遇到类似问题并避免了很多痛苦时,这个答案完全救了我。我不会认为问题是 Unicode -> UTF8。+1 (2认同)