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
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to