我对这个问题有点困惑!我正在构建一个更大的脚本,它在ISE中工作,但不在PowerShell控制台中工作。我设法将其跟踪到[System.Uri] :: EscapeDataString函数,该函数在不同的环境之间似乎表现不同,例如在我的powershell console()' &安培; !没有被转义,在IDE中,它们都被转义。
我错过了什么吗?
我的测试代码:
[System.Uri]::EscapeDataString("/?:@%!$&'/*+,;=()")
ISE输出:
%2F%3F%3A%40%25%21%24%26%27%2F%2A%2B%2C%3B%3D%28%29
Powershell控制台输出:
%2F%3F%3A%40%25!%24%26'%2F*%2B%2C%3B%3D()
谢谢!
答案 0 :(得分:2)
根据source:[System.UriParser].GetField('s_QuirksVersion', [Reflection.BindingFlags] 'Static, NonPublic').GetValue($null)
。
我将答案标记为社区维基,因为它出现在评论中,导致问题出现在搜索未答复的问题中。