Четверг, 26.12.2024, 14:48 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: xXxSh@dowxXx, Anton93, Волк-1024  
idTCP проблема кодировки руских символов
d4rkzyДата: Понедельник, 04.08.2014, 15:21 | Сообщение # 1
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
Вообще-м написал клиент чат на двоих к примеру. idtcpServer написан на дельфи 7 и лежит на удаленном сервере, клиент написан на firemonkey XE4 idtcpClient.
При отправке английского текста все круто smile а вот когда отправляю русский текст то русские буковки заменяются на знаки вопросы, те вместо "привет" будет "??????"
как решить проблему?

Добавлено (04.08.2014, 15:21)
---------------------------------------------
И еще, как отправить сообщение от idtcpServer к idtcpClient?

 
xXxSh@dowxXxДата: Понедельник, 04.08.2014, 18:00 | Сообщение # 2
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
На сколько я помню, давным давно в далеких волосатых годах уже обсуждались данные вопросы на форуме, можешь даже попытаться поискать в старых темах, я уже даже к сожалению не помню в каком именно разделе они создавались.

Что касается русских букв и символов, то тут тебе нужно будет научить твою программу кодировкам которые ты собираешься в ней использовать, так как без них программа просто не понимает что именно она шлет и принимает в ответ.

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

PS: извиняюсь что не могу помочь кодом в данный момент, так как нету делфи под рукой.
 
d4rkzyДата: Среда, 06.08.2014, 01:36 | Сообщение # 3
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
Цитата xXxSh@dowxXx ()
PS: извиняюсь что не могу помочь кодом в данный момент, так как нету делфи под рукой.

Да не чего страшного, проблему уже решил, idtcpserver/client заменил на tcpserver/client (другой хрень, а работает так же почти)

Команды со сервера на клиент слать так: ClientSocket.Sendln('YEAH');

Добавлено (06.08.2014, 01:36)
---------------------------------------------
UP! Опять проблема
Цитата xXxSh@dowxXx ()
то касается русских букв и символов, то тут тебе нужно будет научить твою программу кодировкам которые ты собираешься в ней использовать, так как без них программа просто не понимает что именно она шлет и принимает в ответ.


Раскажи как ее научить понимать русский текст и символы пожалуйста
Пишу на дельфи ХЕ4, как понял она русский текст не понимает (Попробовал закодировать слово "Привет" в base64 - закодировалось, ну при раскодировке вместо Привет какая ахинея в виде XE7GH2 - как русский язык ее научить понимать и вообще кириллицу


Сообщение отредактировал d4rkzy - Среда, 06.08.2014, 04:51
 
ms301Дата: Воскресенье, 10.08.2014, 12:31 | Сообщение # 4
Постоянный
Зарегистрирован: 28.11.2012
Группа: Пользователи
Сообщений: 101
Статус: Offline
Попробуй указать явно кодировку. Я например в клиенте для чтения текста от сервера делаю так:
Код
procedure TOnReceiverThread.Execute;
var
    x: string;
begin
    inherited;
    while not Terminated and idTCPClient.Connected do
    begin
      x := idTCPClient.Socket.ReadLn(IndyTextEncoding_UTF8);
      TOnProcess.AddMsg(x);
    end;
    inherited;
end;


Вот только это в новой делфи. В делфи 7 кажеться по другому надо указать тип кодировки


Сообщение отредактировал ms301 - Воскресенье, 10.08.2014, 12:32
 
d4rkzyДата: Воскресенье, 10.08.2014, 17:42 | Сообщение # 5
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
ms301, Хрен знаю как это делать корректно, ну я решил все хексить и отправлять в виде хекса, (strtohex) все норм. Тему можно закрыть.
 
dolphinДата: Пятница, 15.08.2014, 21:55 | Сообщение # 6
Администратор
Сообщений: 906
Статус: Offline
d4rkzy, признавайся для чего приложение писал? андройд? АйОС? Работает?

Система: Windows 10 x64, Kali Linux
Среды программирования: Delphi 7, Delphi 10.x

Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
 
xXxSh@dowxXxДата: Суббота, 16.08.2014, 15:12 | Сообщение # 7
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата dolphin ()
признавайся для чего приложение писал? андройд? АйОС? Работает?

А в чем собственно проблема?

под мобильные платформы типа Андроид и iOS так же пишется приложение (клиент), которое точно так же без проблем общается с ПК через сокеты, я около года назад писал под Андроид клиент-серверное приложение для общения с ПК через сокеты, все работало!

PS: сервер пишется под ПК (необходимо так же учитывать некоторые нюансы по серверу - такие как постоянный "Статический" IP адрес для нормальной работы сервера), можно так же поднять серверную часть например на PHP какого нибудь хостинга, тогда схема общения клиентов будет уже совсем другая.
 
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz