Доброго времени суток.
Борюсь с проблемой пару тройку дней, перерыл все что можно и зашел в тупик.
Ситуация в следующем:
Сервер (крутится на линуксе) отправляет строки в формате:
заголовок 2 байта, текст, конец строки 2 байта
255 85 text1 255 170 255 85 text2 255 170 ...
Клиентская программа работает на iPad (iOS=14.7.1), с помощью компонента TIdTCPClient принимаю строки:
s:string;
s:=indy_OnLine.IOHandler.ReadLn(#255#170,IndyTextEncoding_OSDefault);
Все отлично работает, пока в настройках iPad установлен язык системы Русский
Как только меняем язык системы на English (или любой другой), прем данных полностью прекращается. IOHandler.ReadLn - ничего не может принять, или не может считать, полная тишина.
Я перепробовал все возможные кодировки текста:
function IndyTextEncoding_Default: IIdTextEncoding;
function IndyTextEncoding_OSDefault: IIdTextEncoding;
function IndyTextEncoding_8Bit: IIdTextEncoding;
function IndyTextEncoding_ASCII: IIdTextEncoding;
function IndyTextEncoding_UTF16BE: IIdTextEncoding;
function IndyTextEncoding_UTF16LE: IIdTextEncoding;
function IndyTextEncoding_UTF7: IIdTextEncoding;
function IndyTextEncoding_UTF8: IIdTextEncoding;
не помогло, функция ReadLN не может принять данные, или тупо ничего не видит.
Подскажите пожалуйста в какую сторону капать?
Возможно это связано с языковым пакетом, но только как это связано?