Перейти к содержанию
Fire Monkey от А до Я
  • 0

Indy IRC


CyberStorm

Вопрос

Проблема, делаю клиент для IRC на Delphi 10.1 для андроида, подключаюсь всё нормально, но при получении русских символов TMemo куда я вывожу текст получает символы таокго формата ���� (ромб с вопросом)

Понимаю что дело в кодировке, но что я только не пробовал не получается:

procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname,
  AHost, ATarget, AMessage: string);
begin
form1.MemoChat.Lines.Add(AMessage);
form1.MemoChat.Lines.Add(AnsiToUtf8(AMessage));
form1.MemoChat.Lines.Add(Utf8ToAnsi(AMessage));

end;

В теории сервер передает строки формата ANSI, так что я не понимаю чего нужно дельфям что бы нормально их выводить...

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
25 минут назад, CyberStorm сказал:

В теории сервер передает строки формата ANSI, так что я не понимаю чего нужно дельфям что бы нормально их выводить...

Используйте TEncoding

Ссылка на комментарий
  • 0

А что реально приходит (дебагер показывает, что в буфере)? Помню там была проблема с отсечением последнего символа. Но приходил корректный текст. Можно инди пересобрать и в колл-стеке глянуть где криво переход анси в юникод. Возможно сервер ожидает utf8, а  там 1251 например приходит.
 

Ссылка на комментарий
  • 0
var
  Data: TIdMultiPartFormDataStream;
  msResponse: TMemoryStream;
  sResponse: String;
  bts: TBytes;

...

msResponse := TMemoryStream.Create;
try
  FIdHTTP.Post([URL], Data, msResponse);
  SetLength(bts, msResponse.Size);
  msResponse.Position := 0;
  msResponse.Read(bts[0], msResponse.Size);
  sResponse := TEncoding.UTF8.GetString(bts);
finally
  FreeAndNil(msResponse);
end;

Так я работаю с IdHTTP. Я думаю, что-то на подобии этого нужно и Вам реализовать

Изменено пользователем dnekrasov
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...