[fpc-pascal] Delphi / FPC and UTF8 BOM
Jonas Maebe
jonas.maebe at elis.ugent.be
Tue Oct 21 17:50:41 CEST 2008
On 21 Oct 2008, at 17:37, Zaher Dirkey wrote:
> Thanks for your answers, and just another few questions :)
>
> 1- Is "fpc .... -FcUTF-8" same as {$codepage utf-8}?
Yes.
> 2- If i put {$codepage utf-8} in my unit and i have string A variable,
> that variable will be widestring and any ansistring assigned to it
> will converted to it?
No, A will be a shortstring (in {$h-} mode) or ansistring (in {$h+}
mode). Only *constant* strings containing non-ASCII characters will be
converted into a widestring at compile time if a codepage is set, so
they can be converted to the current code page at run time (since ansi/
shortstrings are always supposed to be encoded using the current code
page, and this code page can vary from execution to execution).
> 3- if i has another unit with ansi text not UTF 8 and there is a B
> variable in that unit, then i assigned to the A := B is B string
> converted to widestring?.
No. All (ansi)strings are always supposed to be already encoded using
the current ansi encoding, so no conversion happens when assigning one
to another.
> 4- How can i show the content of string (Wide, Ansi) (save it to file
> without any converting), is there any example.
uses
sysutils;
var
f: file;
s: string;
w: widestring;
begin
assign(f,'test.txt');
rewrite(f,1);
s:='abc'+sLineBreak;
w:='def'+sLineBreak;
blockwrite(f,s[1],length(s)*sizeof(s[1]));
blockwrite(f,w[1],length(w)*sizeof(w[1]));
close(f);
end.
Jonas
More information about the fpc-pascal
mailing list