Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Url Encode 
:(
    Опции темы
iglaweb
Дата 9.9.2009, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Как собственно получить из "http://yandex.ru/yandsearch?p=1&text=Поиск слова" закодированную строку "http://yandex.ru/yandsearch?p=1&text=%CF%EE%E8%F1%EA%20%F1%EB%EE%E2%E0"? Мне нужно это для передачи строки в запрос. 
PM MAIL ICQ   Вверх
Anikmar
Дата 9.9.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Что там особо закодированного?
Просто после text=добавляем для каждого символа искомой строки % и его код, на сколько я помню.

text=Поиск слова
text=%CF%EE%E8%F1%EA%20%F1%EB%EE%E2%E0
          П       о    и     с     к            с     л     о     в     а
PM MAIL ICQ   Вверх
andrew_121
Дата 9.9.2009, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



в base64 закодируй)


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
iglaweb
Дата 9.9.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Вообщем так делаю:
    char mail[MAX_PATH];
    char mail2[MAX_PATH];
    strcpy(mail,"Проба пера");
    sprintf(mail2, "%02x", mail[0]);
Но в mail2 попадает ffffffcf! А надо например чтоб было %CF 
PM MAIL ICQ   Вверх
andrew_121
Дата 9.9.2009, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



уберу эту нелопость smile 

Это сообщение отредактировал(а) andrew_121 - 9.9.2009, 18:48


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
andrew_121
Дата 9.9.2009, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



вот, нашел. работает.
Код

#include <iostream>
#include <string>

using namespace std;

string urlencode(const string &c);
string char2hex( char dec );

int main(int argc, char *argv[])
{
    string address = "123 #5 M&M Street";
    cout << "address=" << address << endl;
    cout << "address=" << urlencode(address) <<endl;
    //outputs 123%20%235%20M%26M%20Street
}

//based on javascript encodeURIComponent()
string urlencode(const string &c)
{
   
    string escaped="";
    int max = c.length();
    for(int i=0; i<max; i++)
    {
        if ( (48 <= c[i] && c[i] <= 57) ||//0-9
             (65 <= c[i] && c[i] <= 90) ||//abc...xyz
             (97 <= c[i] && c[i] <= 122) || //ABC...XYZ
             (c[i]=='~' || c[i]=='!' || c[i]=='*' || c[i]=='(' || c[i]==')' || c[i]=='\'')
        )
        {
            escaped.append( &c[i], 1);
        }
        else
        {
            escaped.append("%");
            escaped.append( char2hex(c[i]) );//converts char 255 to string "ff"
        }
    }
    return escaped;
}

string char2hex( char dec )
{
    char dig1 = (dec&0xF0)>>4;
    char dig2 = (dec&0x0F);
    if ( 0<= dig1 && dig1<= 9) dig1+=48;    //0,48inascii
    if (10<= dig1 && dig1<=15) dig1+=97-10; //a,97inascii
    if ( 0<= dig2 && dig2<= 9) dig2+=48;
    if (10<= dig2 && dig2<=15) dig2+=97-10;

    string r;
    r.append( &dig1, 1);
    r.append( &dig2, 1);
    return r;
}



--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
iglaweb
Дата 9.9.2009, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 13.8.2009

Репутация: нет
Всего: нет



Спасибо) Этот работает гут)
PM MAIL ICQ   Вверх
andrew_121
Дата 9.9.2009, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



тему отметь решенной.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.