On Sun, 15 Apr 2012 15:58:24 +0200
Martin Schreiber <mse00...@gmail.com> wrote:

> On Sunday 15 April 2012 15:37:15 Marco van de Voort wrote:
> > On Sun, Apr 15, 2012 at 03:24:32PM +0200, Martin Schreiber wrote:
> > > > Basically if you use "utf8string" you get a string that forces UTF-8.
> > >
> > > And if you use "String" (= AnsiString(CP_ACP) if my assumption about
> > > current FPC trunk is correct) it forces it to the 8bit system encoding.
> > > The only stringtype which does not enforce encoding is "RawByteString".
> > > All "AFAIK" of course. ;-)
> >
> > That's correct. But in Windows, you use Windows functions for conversion,
> > and CP_ACP is a valid value there. On *nix, you first have to find out what
> > the local encoding is, and it seems that Mattias is detecting a problem
> > there.
> >
> > Be careful with assuming too much about RawBytestring being a normal type.
> > In Delphi it is afaik only used in parameters (and function return values),
> > more or less as a kind of open array type.
> >
> > There are no variables of the type "rawbytestring" defined.
> >
> And probably Mattias is wrong if he thinks "String" in FPC trunk does not 
> enforce encoding if I understood correctly.

"string" enforces an 8-bit type.
It does not enforce a specific codepage like utf8string. At least under
Linux.
Assign a CP_UTF8 and the string becomes CP_UTF8, assign a CP_ACP and it
becomes CP_ACP, assign a CP_UTF16 and it becomes DefaultSystemCodePage.
I have not tested under Windows.

Probably we should wait until the dust has settled before drawing
conclusions.


Mattias

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to