Что-то странное, но давайте посмотрим, какой ответ он получит...
Если я закодирую консольное приложение (VS 2013,.NET 4.5.1) и выполните эту строку кода:
Uri.EscapeUriString("[")
Я получаю это:
[
Однако, если я выполняю ту же самую вещь (ну, технически Uri.EscapeUriString("[").Dump()
) в LINQPad на моей машине, я получаю следующее:
%5B
Чтобы еще больше усложнить ситуацию, в соответствии с этим сообщением Uri.EscapeUriString("[")
действительно должен вернуться %5B
. Сообщение было написано 27/06/2012.
Я думаю, что LINQPad ссылается на более старую DLL, чем на VS, но это подразумевает, что EscapeUriString
изменилось сравнительно недавно, и я не могу найти никаких записей. Кто-нибудь имеет какие-либо идеи относительно того, что может вызвать такое поведение?