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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2010, 16:03   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
Лампочка Кодировка в Socket-ах

Делал когда-то клиент-сервер на сокетах в delphi7 все работало, а теперь открыл и откомпилил оба проекта в Delphi2009 (такая стала надобность), теперь SendText('') посылает какие-то китайские "букавки" или знаки вопросов, надеюсь, что это дело в кодировке.
Может кто подскажет как с этим бороться, а то китайский влом учить???
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 03.10.2010, 16:41   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,821
По умолчанию

Тема названа глупо и неправильно. Сокетам пофиг, что передается. Они о ваших кодировках вообще не сном не духом... и не их это дело.

И да в новых делфях символы и строки поумолчанию в юникоде. Было сто раз.

Последний раз редактировалось p51x; 03.10.2010 в 16:45.
p51x вне форума Ответить с цитированием
Старый 03.10.2010, 17:03   #3
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

я вот прочитал, что оказывается в delphi2009 и выше так спешили с переходом на UTF8 кодировку, что в некоторых функциях забыли сделать изменения (соответственно тема названа корректно и не глупо). Вот к примеру Socket.SendText отправляет текст в кодировке ANSI, и Socket.ReceiveText тоже якобы принимает в ANSI, но на самом деле в UTF8, вот и приходит в ReciveText - "????? ???". Но вопрос еще не решен.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 03.10.2010, 18:41   #4
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

ну так что, никто еще не сталкивался с такой проблемой?? UTF8TOANSI и ANSITOUTF8 не помогают.
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 03.10.2010, 20:35   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

не путайте Юникод и UTF8.
а вообще посылайте буфером, а не текстом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.10.2010, 21:17   #6
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а вообще посылайте буфером, а не текстом.
вот так уже и сделал, на клиенте отсылаю
Код:
Socket.SendBuf(Pointer(S)^, Length(S)*sizeOf(Char)*2);
а на сервере как обычно
Код:
S := Socket.ReceiveText();
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 03.10.2010, 23:17   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,821
По умолчанию

Код:
sizeOf(Char)*2
?
Тогда уж
Код:
sizeOf(AnsiChar)*2
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Socket в j2me Razyiller Общие вопросы по Java, Java SE, Kotlin 2 07.04.2010 06:33
Socket Djem1991 Работа с сетью в Delphi 6 03.07.2009 23:45
socket Артэс C/C++ Сетевое программирование 2 22.06.2009 17:22
Socket в Dev C++ Артэс C/C++ Сетевое программирование 1 11.01.2009 23:00
Socket Get Editor Работа с сетью в Delphi 7 22.04.2008 05:48