>> However (as Maxim Ganetsky, who invented the patch, noted) the >> windows console is a mess. pg> It is indeed. Windows uses the ANSI code page for most GUI stuff but uses pg> the OEM code page for the console (at least by default i belive there may be pg> ways to change it). In MOST cases the ANSI and OEM code pages are pg> significantly different!
And the patch used system functions to know, which codepage to use. My message was just a report about uncovered features. ("crt garbles writeln() output" bug was higher priority: it concerned TP compatibility.) pg> {ansi|short}string <-> widestring conversion is not really possible to do pg> right automatically. The compiler simply can't know what character set the pg> {ansi|short}string is meant to represent! It defaults to ISO-8859-1 (aka pg> direct code value mapping) which at least provides round trip compatibility pg> but apps that care are strongly advised to either register thier own pg> conversion functions or avoid automatic ansistring <-> widestring pg> conversions. It's easy: (just like Maxim wrote) function w2a(const widestring; var ansistring; target_encoding: integer or something): integer; --- for utf16 function w2a(const widestring; var ansistring; source_encoding: ...; target_encoding: ...): integer; --- for EBCDIC etc (output for success/fail result and various info, like first unconvertible symbol, number of converted symbols etc; some errors may be reacted by exceptions: not enough length etc) And, finally, typecast: widestring->ansistring, assuming utf16 and GetConsoleOutputCP() (or something else on other platforms/in non-console modes). And similar procedures in the opposite direction. It is matter of priorities: the mappings are long known. Unicode standard is quite open too. If I had much free time, I'd work on porting such a thing (from somewhere, there are many places) to FPC. But I'm not yet accustommed to my full-time job:( _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel