Работа строк в Linux и Windows

Модератор: Модераторы

Ответить
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Работа строк в Linux и Windows

Сообщение Sharfik »

Вопрос, допустим есть такой код.

Код: Выделить всё

InputFilePath:=paramstr(1); //Sys format
      if FileExists(InputFilePath)then
      begin
        OpenTableFile(InputFilePath,nil);
      end
      else begin
        ShowMessage('Нет данных для работы.');
        close;
      end;

В Win строка приходит в системной кодировке, и дальше по функции обработка идет функциями без приписок UTF8 и передается TNativeXML для чтения файла.
Как поведет себя код в Linux/Mac? Обработается без проблем?
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Чтоб везде работало надо обработку делать только в utf8. Возврат в системной кодировке в винде иногда глючит.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 836
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

paramstr(1) уже приходит не utf8...
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

Значит надо принудительно все конвертировать в utf8 и явно задавать исходную кодировку в зависимости от системы
eastorwest
новенький
Сообщения: 57
Зарегистрирован: 23.07.2009 20:21:46
Откуда: Н-ск

Сообщение eastorwest »

В Lazarus видел функцию ParamStrUTF8 из FileUtil. Надеюсь, сократит код, связанный с начальными преобразованиями кодировок.
Ответить