[fpc-pascal] Code page for the Windows event viewer

Tomas Hajny XHajT03 at hajny.biz
Wed Sep 15 15:53:00 CEST 2021


On 2021-09-15 15:08, Abuy via fpc-pascal wrote:
> Instead of cyrillic characters there some garbage in Windows event
> viewer. Have tried AnsiString with Windows-1251 code page (type
> StringCP1251 = type AnsiString(1251)) but this does not work. What
> works is RawByteString variable with the following conversion to
> Windows-1251. Here is code:
> 
> {$MODE objfpc} {$ifdef mswindows}{$apptype console}{$endif}
> {$R C:\lazarus\fpc\3.2.0\source\packages\fcl-base\src\win\fclel.res}
> program Project1;
> 
> uses
>   EventLog,
>   sysutils;
> type
>   StringCP1251 = type AnsiString(1251);
> var
>   logger:teventlog;
>   //msg:StringCP1251;
>   msg:rawbytestring;
> begin
> msg:='Іівівйц й вфівфъ2цву йцуцйівів';
> SetCodePage(msg, 1251, True);
> 
> Write('DefaultSystemCodePage is ');
> Writeln(system.DefaultSystemCodePage);
> 
> logger:=teventlog.create(nil);
> logger.Identification:='My gressdqwwe';
> logger.RegisterMessageFile('');
> logger.logtype:=ltsystem;
> logger.active:=true;
> 
> Write('Code page is ');
> WriteLn(StringCodePage(msg));
> 
> logger.Info(msg);
> logger.Destroy;
> 
> WriteLn('End');
> end.

What happens if you declare Msg as UnicodeString? How is your source 
file stored (which encoding, BOM if applicable or not)? Which command 
line parameters do you use (e.g. -Fc???)?

Tomas


More information about the fpc-pascal mailing list