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

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

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

Сообщение Sharfik » 04.04.2015 02:25:41

Вопрос, допустим есть такой код.
Код: Выделить всё
InputFilePath:=paramstr(1); //Sys format
      if FileExists(InputFilePath)then
      begin
        OpenTableFile(InputFilePath,nil);
      end
      else begin
        ShowMessage('Нет данных для работы.');
        close;
      end;

В Win строка приходит в системной кодировке, и дальше по функции обработка идет функциями без приписок UTF8 и передается TNativeXML для чтения файла.
Как поведет себя код в Linux/Mac? Обработается без проблем?
Sharfik
постоялец
 
Сообщения: 481
Зарегистрирован: 20.07.2013 01:04:30

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

Сообщение Ism » 04.04.2015 02:54:41

Чтоб везде работало надо обработку делать только в utf8. Возврат в системной кодировке в винде иногда глючит.
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

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

Сообщение Sharfik » 04.04.2015 03:03:40

paramstr(1) уже приходит не utf8...
Sharfik
постоялец
 
Сообщения: 481
Зарегистрирован: 20.07.2013 01:04:30

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

Сообщение Ism » 04.04.2015 12:40:56

Значит надо принудительно все конвертировать в utf8 и явно задавать исходную кодировку в зависимости от системы
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

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

Сообщение eastorwest » 06.04.2015 19:53:21

В Lazarus видел функцию ParamStrUTF8 из FileUtil. Надеюсь, сократит код, связанный с начальными преобразованиями кодировок.
eastorwest
новенький
 
Сообщения: 55
Зарегистрирован: 23.07.2009 20:21:46
Откуда: Н-ск


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru