Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразовать строку для передачи серверу в виде URL

21K
06 июля 2010 года
Timmy!!
15 / / 02.06.2007
Подскажите кто знает.
Например, чтобы "привет" стало "%EF%F0%E8%E2%E5%F2"
2.1K
06 июля 2010 года
Norgat
452 / / 12.08.2009
Цитата: Timmy!!
Подскажите кто знает.
Например, чтобы "привет" стало "%EF%F0%E8%E2%E5%F2"



на C++ я сделал так:

Код:
#include <iostream>
#include <sstream>
#include <conio.h>
#include <string>

using namespace std;

void main()
{
    string str = "привет";
    stringstream out;

    for(int i = 0; i < str.length(); ++i)
    {
        unsigned int t = str;
        out << '%' << hex << t%256;
    }
    cout << out.str();

    _getch();
}


там же после % идёт просто код символа в ASCII таблице, но в 16-ричной системе счисления
21K
07 июля 2010 года
Timmy!!
15 / / 02.06.2007
спасибо за ответ. но оказалось, что это не совсем то что нужно.
запрос формируется гугл преводчику и он не понимает такой формат "%EF%F0%E8%E2%E5%F2". зато если отправить "%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82" то все работает. помогите разобратся как преобразовать. может все дело в кодировке?
14
08 июля 2010 года
Phodopus
3.3K / / 19.06.2008
Да, все дело в ней. Это utf-8
21K
11 июля 2010 года
Timmy!!
15 / / 02.06.2007
кому интересно вот как я это сделал
Код:
// функция преобразовывает строку для передачи серверу в виде URL
// строка кодируется в utf8
String urlencode(const WideString wstr)
{
  UTF8String utf8str;
  String url;

  utf8str = UTF8Encode(wstr);

  if (utf8str.Length() > 0) {
    for (int i = 1; i <= utf8str.Length(); ++i) {
      String tmp = IntToHex(utf8str, 2);
       url += "%";
       url += tmp[tmp.Length() - 1];
       url += tmp[tmp.Length()];
    }
  }
  return url;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог