Непонятки с systoutf8

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Непонятки с systoutf8

Сообщение zub »

Предистория: На WinXPx86 все прекрасно работало, поставил Win7х64 (лазарь рев33961 и фпц х86 рев19748) - перекосило кодировку: systoutf8 в ответ на анси строчку с рускими буквами возвращает её обратно, не перекодировав((
Прошу объяснить результат работы вот этого тестика:

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

program project1;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes
  { you can add units after this },fileutil;

{$R *.res}
var
   s:string;

begin
  s:='C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas';
  writeln(s);
  writeln(systoutf8(s));

  writeln('C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas');
  writeln(systoutf8('C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas'));
end.


исходник сохранен в анси, на выходе:
C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas
C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas
C:\zcad\cad\programdb\argusspectr/╬яютх∙хэшх/am.pas
C:\zcad\cad\programdb\argusspectr/Оповещение/am.pas

Вторая и четвертая строки не перекодированы, почему?
Что за бред в третьей строке?

исходник сохранен в utf8, на выходе:
C:\zcad\cad\programdb\argusspectr/Р?РїР?Р?РчС%РчР?РёРч/am.pas
C:\zcad\cad\programdb\argusspectr/Р?РїР?Р?РчС%РчР?РёРч/am.pas
C:\zcad\cad\programdb\argusspectr/╨╛╨┐╨╛╨▓╨╡╤Й╨╡╨╜╨╕╨╡/am.pas
C:\zcad\cad\programdb\argusspectr/Р?РїР?Р?РчС%РчР?РёРч/am.pas

Перекодировать незачем, но снова бред в третьей строке, откуда?
Аватара пользователя
Alexx2000
постоялец
Сообщения: 490
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

Судя по ревизии используется FPC 2.7.1, до этого тоже он использовался или нет? В нем сейчас полностью переделывается работа со строками, и Lazarus с ним еще не может правильно работать.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

да, был 2.7.1, ревизия помладше. Ниразу не замечал неправильной работы, вот только сейчас. Попробовал старый ексешник, со времен XP - работает. Видимо переход на семерку совпал с "неправильным" комитом. придется пока перекодировать ручками((
Ответить