On 13 Oct 2011, at 20:51, Craig Peterson wrote:

> BTW, I wanted to point out, to anyone arguing for full Delphi compatibility, 
> that on OS X Delphi's DefaultSystemCodePage and AnsiString(0) are *not* the 
> system encoding _or_ UTF-8.  They're the Windows ANSI codepages that 
> correspond to the system's locale (so, 1252 for US/UK versions).  It's a 
> weird gotcha, and means it's not safe to rely on AnsiString to communicate 
> with system functions anymore.

My guess is that this is because of Delphi's behaviour to assume that the 
source code has been saved in the locale's default code page unless specified 
otherwise. If they'd changed the default code page to UTF-8 for all locales on 
Mac OS X, lots of Delphi source code would probably not compile correctly on 
Mac OS X without explicitly specifying the code page.

They could of course have changed this only in their compiler rather than also 
for end-user programs, but
a) that would be bad from a maintenance/dog food point of view
b) it would have resulted in run time code page conversions for all string 
constants on the developer's own system, since the compiler would have stored 
the constants in cp1252 or the like (the specific "compiler"-determined code 
page) and at run time they'd all be converted into UTF-8 (the actual "ansi" 
code page of the system)


Jonas_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to