Op Thu, 23 Oct 2008, schreef Michael Schnell:
Then you don't understand it yet, I think.
May be....
If the compiler knows your source file is UTF-8 (by BOM or directive), the
compiler generates a widestring constant and no conversion function is
called when assigning to a widestring.
In my test the source code is not UTF8 but UCS2 and does have a correct BOM.
The compiler does work correctly with that and (it seems to be designed that
way) converts the string constant source UCS2->UTF8, supposedly temporarily
assigning a type like UTF8String to the constant. As the compiler is not
aware of the type UTDF8String and errineously identifies it with ANSIString,
now the resulting code interprets the constant as ANSIString and the
conversion to WideString results in a false text.
No no, a string with unicode characters is interpreted by the compiler as
widestring constant, never as UTF-8 ansistring constant. If it does
otherwise, the compiler probably does not interpret your source code as
Unicode.
The issue might be the UCS-2 encoding of your source, perhaps try to feed
the compiler UTF-8, I didn't even know the compiler accepts UCS-2, it may
not work correctly.
Daniël
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel