2014-02-28 46 views
2

我正在调用Web服务来检索XML数据。我保存对xml变量的响应:powershell xml变量编码

$Response = Invoke-WebRequest $newURL -Method Post -Headers @{SOAPAction=$newURL} -ContentType "text/xml" -Body $queryBody 

Web服务的结果是在标题部分中使用UTF-8编码的xml。

然而,当我访问了一些元素即是这样的:“?”

$response.Envelope.Body.describeSObjectResponse.result.fields[4].picklistValues 

我可以看到一些值转换为ASCII,因为一些国家的字符与字符替代。

请问如何以UTF-8编码读取这些元素?

编辑2014年3月1日:
好像问题出在调用-的WebRequest。如果我使用-outfile切换到文件重定向输出,则文件中的编码是正确的。如果我然后将xml文件的内容加载到xml变量编码中仍然是正确的。

任何想法,我怎么能实现相同的,但没有重定向输出到文件;即直接在PowerShell逻辑内部工作?

+0

您在PowerShell主机中使用什么字体?常规控制台主机(同一个命令提示符使用),[终端](http://en.wikipedia.org/wiki/Terminal_(字体))中的默认字体不支持UTF-8。 – Nacimota

+0

我在Windows PowerShell ISE中执行脚本,字体为:Lucida Console 9pt – user2761761

回答

1

看起来你可能会遇到这个命令的bug。如果这个Connect issue看起来像你看到的,一定要投票。