在我的台式机上,我得到了这个..
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
注意第二个结果中间的星号?在第一个结果中,它正在编码.
谁能解释一下发生了什么事,拜托?
这是一个使用.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
我已决定在所有.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服务器的构建结果,其中包含大量调试信息......
| 归档时间: |
|
| 查看次数: |
1426 次 |
| 最近记录: |