On my desktop machine, I get this..

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

Now, on my CI server *part* of the result is NOT encoded....
I get this

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

Notice the **asterisk** in the middle of the second result? in the first result, it's getting encoded.

Can anyone explain what's going on, please?

### Update 1:

[Here's an .NET Fiddle](https://dotnetfiddle.net/WcuzdI) which is using .NET 4.5 and shows the asterisk is encoded...

So does this mean my machine **and** .NET Fiddle are both *wrong* ? Or we are both right and the CI Server is wrong?

Some diagnostic info from the build server..  

`Microsoft (R) Build Engine version 12.0.30723.0
[Microsoft .NET Framework, version 4.0.30319.34209]
Copyright (C) Microsoft Corporation. All rights reserved.`

(i'm not too sure how to get this info, for my local dev machine. It's win8.1 + VS 2013 Update 3.)

*All projects are .NET 4.5 ...**not** 4.5.1*

### Update 2:

I've decided to run this code on all the .NET frameworks (that matter).
Here's the results.

```
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.

```

This then suggests that

* < `.NET 4.5`, those values are NOT encoded. Kewl, fine.
* > 
> = `.NET 4.5` those values ARE encoded.
> 
> 
>

LINK: [this is a similar SO question](https://stackoverflow.com/questions/24962514/uri-escapedatastring-weirdness).  

REF: [this is the build result from the CI server](https://ci.appveyor.com/project/PureKrome/simpleauthentication) which includes lots of debug info...