Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2011, 02:53   #1
temchik2004
 
Регистрация: 28.11.2010
Сообщений: 8
По умолчанию Проблема в кодировке сообщений ВКОНТАКТЕ

Пользуюсь vk api
Происходит отправка сообщений но человек получает знаки вопросов вместо русского текста
использую indy10 и delphi2010
Код:
procedure TForm4.Button2Click(Sender: TObject);
begin
Memo1.Text:=idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+Form1.id+'&message='+mess.Text+'&access_token='+Form1.accesstoken);
end;
Пробовал и
Код:
procedure TForm4.Button2Click(Sender: TObject);
begin
Memo1.Text:=idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+ansitoutf8(Form1.id)+'&message='+ansitoutf8(mess.Text)+'&access_token='+Form1.accesstoken);
end;
не помогает!
В чем может быть проблема?
temchik2004 вне форума Ответить с цитированием
Старый 28.07.2011, 19:24   #2
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Попробуй переводить в кодировку из utf8 в ansi
Что то типа этого

Попробуй так

Код:
Memo1.Text:=Utf8ToAnsi(idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+Form1.id+'&message='+mess.Text+'&access_token='+Form1.accesstoken));
или так

Код:
Memo1.Text:=AnsiToUtf8(idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+Form1.id+'&message='+mess.Text+'&access_token='+Form1.accesstoken));

Последний раз редактировалось -=Virus=-; 28.07.2011 в 19:27.
-=Virus=- вне форума Ответить с цитированием
Старый 31.07.2011, 00:10   #3
temchik2004
 
Регистрация: 28.11.2010
Сообщений: 8
По умолчанию

Цитата:
Сообщение от -=Virus=- Посмотреть сообщение
Попробуй переводить в кодировку из utf8 в ansi
Что то типа этого

Попробуй так

Код:
Memo1.Text:=Utf8ToAnsi(idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+Form1.id+'&message='+mess.Text+'&access_token='+Form1.accesstoken));
или так

Код:
Memo1.Text:=AnsiToUtf8(idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+Form1.id+'&message='+mess.Text+'&access_token='+Form1.accesstoken));
Не помогло!
temchik2004 вне форума Ответить с цитированием
Старый 31.07.2011, 19:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
но человек получает знаки вопросов вместо русского текста
использую indy10 и delphi2010
Тоже попался на подобном... Так и не понял таки как проблему решить. Юникодизация делфи не пошла на пользу.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.08.2011, 00:27   #5
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  mess: string;
begin
  mess := IdHTTP1.URL.ParamsEncode('Проверка', TEncoding.UTF8);
  s := 'https://api.vkontakte.ru/method/wall.post.xml?uid=&access_token=&message=' + mess;
  ShowMessage(IdHTTP1.Get(s));
end;
Сообщение приходит нормальное.
kangreon вне форума Ответить с цитированием
Старый 01.08.2011, 19:26   #6
temchik2004
 
Регистрация: 28.11.2010
Сообщений: 8
По умолчанию

Код:
 
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;

idhttp1.Get('https://api.vkontakte.ru/method/messages.send.xml?uid='+form1.id+'&message='+URLEncode(ansitoutf8(mess.Text))+'&access_token='+Form1.accesstoken);
Решило проблему! Всем спасибо!

Последний раз редактировалось temchik2004; 01.08.2011 в 19:42.
temchik2004 вне форума Ответить с цитированием
Старый 04.09.2013, 14:33   #7
GrabbeR
Пользователь
 
Регистрация: 17.03.2010
Сообщений: 43
По умолчанию

Спасибо, помогло)
GrabbeR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление Всех сообщений Вконтакте Zugelman JavaScript, Ajax 8 13.12.2010 01:31
Сообщения Вконтакте(проблема) viks1 Свободное общение 7 13.03.2010 15:51
Не грузится ВКонтакте(Странная проблема!!!) brandname Безопасность, Шифрование 8 20.12.2009 18:57
Отправка сообщений... вконтакте.ру... Delphi 7 Dionix Работа с сетью в Delphi 2 04.10.2009 12:34
Отправка сообщений вконтакте.ру mustang007 Работа с сетью в Delphi 3 28.06.2009 12:53