История изменений
Исправление uuwaan, (текущая версия) :
Что есть AnsiString в Delphi. В версиях до 2009 – это строка в кодировке, соответствующей локали твоего приложения, скорее всего в CP1251, однако кодировка не обязана быть однобайтной. Начиная с 2009й AnsiString снабжён полем кодировки, а среда выполняет переконвертирование туда-сюда при необходимости. Так что до начала неплохо выяснить, какие байтики идут в сокет.
В Lazarus же строки хранятся в UTF-8. Так что по-хорошему из сокета надо доставать байты и, зная кодировку, преобразовывать в UTF-8, который класть в строку.
Строка выводится в консоль? Какая локаль в принимающей системе?
Исходная версия uuwaan, :
Что есть AnsiString в Delphi. В версиях до 2009 – это строка в кодировке, соответствующей локали твоего приложения, скорее всего в CP1251, однако кодировка не обязана быть однобайтной. Начиная с 2009й AnsiString снабжён полем кодировки, а среда выполняет переконвертирование туда-сюда при необходимости. Так что до начала неплохо выяснить, какие байтики идут в сокет.
В Lazarus же строки хранятся в UTF-8. Так что по-хорошему из сокета надо доставать байты и, зная кодировку, преобразовывать в UTF-8, который класть в строку.