Hi,

I edited my source code with TextWrangler (a macintosh text editor),
setting the encoding to utf-8, and when I opened with Lazarus it would
show the beginning of the file like this:

Ôªøunit mainform;

Notice the first 3 funny characters (actually on lazarus I see
different characters, but they changed on copy+paste). FPC didn't seam
to care about this, and the file compiled without problems, so I
ignored them.

But then, utf-8 strings stoped working.

This, for example:

procedure TForm1.FormCreate(Sender: TObject);
var
 MyStr: string;
 i: Integer;
begin
 MyStr := 'Texto ł ñ ø ß á';

 WriteLn('[TForm1.FormCreate] Printing string values');

 WriteLn('Length: ', Length(MyStr));

 for i := 1 to Length(MyStr) do
  Write(IntToHex(Integer(MyStr[i]), 2) + ' ');

 WriteLn('');

 Self.Caption := MyStr;
 Label1.Caption := 'átomo tômo não';
 Button1.Caption := 'łñø˘ðßßăŏ';
end;

Would result in non-sense results, like this:

[TForm1.FormCreate] Printing string values
Length: 15
54 65 78 74 6F 20 20 20 20 20 20 20 20 20 20

However, if I remove the 3 funny characters, everything work normally
again, and I see my UTF-8 characters on screen, and the text output
is:

[TForm1.FormCreate] Printing string values
Length: 20
54 65 78 74 6F 20 C5 82 20 C3 B1 20 C3 B8 20 C3 9F 20 C3 A1

Does anyone know what are those funny characters? (I suppose some kind
of encoding setting), and why they make utf-8 strings sudenlly stop
working?

thanks,
--
Felipe Monteiro de Carvalho
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to