与我的开发机器相比,为什么Uri.EscapeDataString在我的CI服务器上返回不同的结果?

Pur*_*ome 8 .net c# encoding

在我的台式机上,我得到了这个..

var result = Uri.EscapeDataString("zdskjhf&*^65sdfh/.<>\\sdf"); // result == zdskjhf%26%2A%5E65sdfh%2F.%3C%3E%5Csdf

现在,在我的CI服务器上,部分结果未编码....我明白了

\\ result == zdskjhf%26*%5E65sdfh%2F.%3C%3E%5Csdf

注意第二个结果中间的星号?在第一个结果中,它正在编码.

谁能解释一下发生了什么事,拜托?

更新1:

这是一个使用.NET 4.5 的.NET Fiddle,并显示星号已编码...

那么这是否意味着我的机器 .NET Fiddle都错了?或者我们都是对的,CI服务器是错的?

来自构建服务器的一些诊断信息..
Microsoft (R) Build Engine version 12.0.30723.0 [Microsoft .NET Framework, version 4.0.30319.34209] Copyright (C) Microsoft Corporation. All rights reserved.

(我不太确定如何获取此信息,对于我的本地开发机器.它是win8.1 + VS 2013 Update 3.)

所有项目都是.NET 4.5 ... 而不是 4.5.1

更新2:

我已决定在所有.NET框架上运行此代码(重要).这是结果.

Data:     abcde *.(.)."

.NET 2.0: abcde%20*.(.).
.NET 3.0: abcde%20*.(.).
.NET 3.5: abcde%20*.(.).
.NET 4.0: abcde%20*.(.).

-- MSDN NOTES: Bug now fixed here --

.NET 4.5:   abcde%20%2A.%28.%29.
.NET 4.5.1: abcde%20%2A.%28.%29. 
.NET 4.5.2: abcde%20%2A.%28.%29. 
.NET 4.5.3: abcde%20%2A.%28.%29.
Run Code Online (Sandbox Code Playgroud)

这表明了这一点

  • < .NET 4.5,那些值不是编码的.凯尔,好的.
  • = .NET 4.5这些值是编码的.

链接:这是一个类似的问题.
REF:这是CI服务器的构建结果,其中包含大量调试信息......