Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 28.08.2012, 00:27   #1
Pter
 
Регистрация: 26.06.2012
Сообщений: 8
По умолчанию Idhttp.get и русские символы в запросе

Здравствуйте!
Сейчас я разрабатываю небольшую программку, которая использует api vk.com.
Необходимо послать гет запрос такого типа: https://api.vk.com/method/wall.post?...екст_сообщения
Собственно, запрос проходит, но если в сообщении присутствуют русские символы, оно принимает вид "?????".
Что можно сделать в такой ситуации?
Заранее спасибо.
Pter вне форума Ответить с цитированием
Старый 28.08.2012, 00:37   #2
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

держите:

Код:
function UrlEncode(const s: AnsiString): string;
var
  I: integer;
begin
  Result := '';
  for i := 1 to Length(S) do
    case S[i] of
      '%', ' ', '&', '=', '@', '.', #13, #10, #128..#255: Result := Result + '%'
        + IntToHex(Ord(S[i]), 2);
    else
      Result := Result + S[i];
    end;
end;
использовать: URLEncode(ansitoutf8('текст'))
Voody вне форума Ответить с цитированием
Старый 28.08.2012, 09:24   #3
Pter
 
Регистрация: 26.06.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Voody Посмотреть сообщение
держите:

использовать: URLEncode(ansitoutf8('текст'))
Огромнейшее спасибо Вам, все прекрасно работает
Pter вне форума Ответить с цитированием
Старый 28.08.2012, 10:26   #4
Pter
 
Регистрация: 26.06.2012
Сообщений: 8
По умолчанию

Немного рано обрадовался: текст, который надо отправить на стенку, парсится со странички с кодировкой utf-8. И если отправлять спарсенный текст, то в результате получается что-то типа "Купонгид в отрыве! Оплаченный отпуск за ". А работает Ваш вариант при условии, что строку, которая будет отправляться, будут заполнять в программе.
Буду благодарен за помощь.
Pter вне форума Ответить с цитированием
Старый 28.08.2012, 10:31   #5
BDA
Модератор
Заслуженный модератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 5,646
По умолчанию

Попробуйте убрать ansitoutf8().
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 28.08.2012, 11:11   #6
Pter
 
Регистрация: 26.06.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Попробуйте убрать ansitoutf8().
Это было первое, что я попробовал
Проблема оказалась немного не там, где я ее искал. Idhttp получает страничку, но у него как всегда проблемы с распознаванием русского текста. Тут я описывал ее, тогда у меня получилось решить ее, но сейчас то решение не подходит.
Pter вне форума Ответить с цитированием
Старый 28.08.2012, 11:44   #7
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

del...........

Последний раз редактировалось Voody; 28.08.2012 в 11:52.
Voody вне форума Ответить с цитированием
Старый 28.08.2012, 15:37   #8
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Что за страница?
Попробуйте это же решение (получение русского текста) в конце обернуть еще в utf8decode, т.е.

Код:
setLength(c, length(s));
  IdHTTP1.Response.ContentStream.Read(c[1], length(s));
  //
  Memo1.Lines.Add(utf8decode(c));
Voody вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русские буквы в \u символы J-Max Общие вопросы Delphi 4 01.07.2012 18:35
Русские символы в консоле pimple2006 Общие вопросы Delphi 2 16.12.2011 09:50
Notepad++ , русские символы, pascal arnold Паскаль, Turbo Pascal, PascalABC.NET 6 21.11.2011 01:17
Русские символы Akord Общие вопросы C/C++ 0 26.09.2010 10:17
Idhttp русские буквы KoBRaAndrey Работа с сетью в Delphi 4 17.08.2010 08:48


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS