Преобразование строки в URL - C#

Узнай цену своей работы

Формулировка задачи:

Нужно преобразовать строку в url для отправки запроса на поиск. Использовал HttpUtility.UrlEncode(string str), но он преобразовывает кирилицу не в ту кодировку. Для примера запрос "hello, тест" возвращается в таком виде: "hello%2c+%d1%82%d0%b5%d1%81%d1%82" а нужно "hello%2C+%F2%E5%F1%F2". Попытки вызвать перегруженную версию сего метода ни к чему хорошему не привели. Как сделать правильно? (Нужно правильно, так как "индийский" вариант я нашел)
Есть идеи, решения?

Решение задачи: «Преобразование строки в URL»

textual
Листинг программы
//метод словаря
public static Dictionary<char,string> CreateDictionary()
    {
        return new Dictionary<char, string>
        {
            {' ',"+"},
            {',',"%2C"},
            {'+',"%2B"},
            {'%',"%25"},
            {'&',"%26"},
            {'Ё',"%A8"},
            {'ё',"%B8"},
            {'А',"%C0"},
            {'Б',"%C1"},
            {'В',"%C2"},
            {'Г',"%C3"},
            {'Д',"%C4"},
            {'Е',"%C5"},
            {'Ж',"%C6"},
            {'З',"%C7"},
            {'И',"%C8"},
            {'Й',"%C9"},
            {'К',"%CA"},
            {'Л',"%CB"},
            {'М',"%CC"},
            {'Н',"%CD"},
            {'О',"%CE"},
            {'П',"%CF"},
            {'Р',"%D0"},
            {'С',"%D1"},
            {'Т',"%D2"},
            {'У',"%D3"},
            {'Ф',"%D4"},
            {'Х',"%D5"},
            {'Ц',"%D6"},
            {'Ч',"%D7"},
            {'Ш',"%D8"},
            {'Щ',"%D9"},
            {'Ъ',"%DA"},
            {'Ы',"%DB"},
            {'Ь',"%DC"},
            {'Э',"%DD"},
            {'Ю',"%DE"},
            {'Я',"%DF"},
            {'а',"%E0"},
            {'б',"%E1"},
            {'в',"%E2"},
            {'г',"%E3"},
            {'д',"%E4"},
            {'е',"%E5"},
            {'ж',"%E6"},
            {'з',"%E7"},
            {'и',"%E8"},
            {'й',"%E9"},
            {'к',"%EA"},
            {'л',"%EB"},
            {'м',"%EC"},
            {'н',"%ED"},
            {'о',"%EE"},
            {'п',"%EF"},
            {'р',"%F0"},
            {'с',"%F1"},
            {'т',"%F2"},
            {'у',"%F3"},
            {'ф',"%F4"},
            {'х',"%F5"},
            {'ц',"%F6"},
            {'ч',"%F7"},
            {'ш',"%F8"},
            {'щ',"%F9"},
            {'ъ',"%FA"},
            {'ы',"%FB"},
            {'ь',"%FC"},
            {'э',"%FD"},
            {'ю',"%FE"},
            {'я',"%FF"},
        };
    } //не лезь!
 
 
//это в коде
string SearchString = Console.ReadLine();
 
if (Regex.IsMatch(SearchString, @"[А-Яа-я,Ё,ё]+$")) //ищем кирилицу
            {
                var dictionary = CreateDictionary();
                string CorrectedSearchString ="";
                for (int i = 0; i < SearchString.Length; i++)
                {
                    if (dictionary.Keys.Contains(SearchString[i]))
                    {
                        CorrectedSearchString += dictionary[SearchString[i]];
                    }
                    else 
                    {
                        CorrectedSearchString += SearchString[i];
                    }
                }
                SearchString = CorrectedSearchString;
            }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5