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

Reply via email to