[fpc-devel] utf8 in 2.6.0
Anton Kavalenka
anton.k at tut.by
Tue Dec 18 14:47:38 CET 2012
On 15.12.2012 21:35, Martin wrote:
> I am trying to figure out how to do that, or what I do wrong. I found
> a page about $codepage, but it did not help
> http://wiki.freepascal.org/LCL_Unicode_Support
> I didnt find the fpc specific page, if exists (I suspect it does)
>
>
> I am calling a function "function Foo(A:string)" {$mode objfpc}{$H+}
> I call it with a constant, that contains an german umlaut. Checked
> with a hex editor, the constant in the source file is utf8
>
> - If I save the source (in utf8), without a utf8 BOM, then it works
> fine on windows.
> - If I had a bom, then the string received by the function appears to
> be ascii (checked memory dump in debugger "oe" becomes d6
> - if I add {$codepage utf8} it also becomes ascii
>
> If I do *not* add that, it seems something gos wrong with the encoding
> on a PowerPC Mac. Unfortunately this is someone else's pc, and I have
> no more info.
> If I add it things also go wrong, only different. Again no more info.
>
> -----------
>
> I know the provided info, is very little. If there is anything obvious
> then tell me.
>
> Thanks
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
Probably this is due to significant change in FPC 2.7 RTL
*String* type implies the encoding inside
under WIndows it is ANSI by default.
Try to write simple application that concatenates (s:=a+b) two strings
with umlauted letters.
The resulting string loose the umlauts under Windows.
The only thing that help at the RTL level -
{$ifdef FPC}
SetMultiByteConversionCodePage(CP_UTF8);
{$endif}
This brings similar behaviour for RTL functions ether in Windows and
UNIX but completely breaks file IO.
You wont be able to open file which names translates to
more-than-one-byte per symbol.
because RTL IO is ANSI-specific under Windows.
Other approach - use the *UnicodeString*. Forget the *string* type.
regards,
Anton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20121218/be079f57/attachment.html>
More information about the fpc-devel
mailing list