Наверное многие сталкивались с проблемой URL-кодирования строки в C#. Стандартная C#-функция HttpUtility.UrlEncode() кодирует только спецсимволы и пробелы. Попытка кодирования путём преобразования char-кодов входных символов разбивала каждый символ кириллицы на два url-представления (напр. %d9%c0). Дело в том что в C# char-код получается путём UTF8 кодирования. В результате на выходе мы получаем вполне рабочую URL-строку, но она не совместима с другими url-декодерами.
Написанные мной процедуры для кодирования/декодирования исправляют эту проблему, и получается стандартная url-строка, совместимая с другими декодерами.
Функция кодирвания: