<html><body><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br>>  .<br>>>> The implicit conversion is explicitly expected by the user<br>>>> in this case if I understand it correctly (source in CP1250), right?<br>>> <br>>> If you mean the "non implicit conversion" requires explicit<br>>> conversion by the user, then yes.<br>> <br>> No, I mean that the original poster explicitly mentioned that he <br>>expected the implicit conversion to be performed as necessary when he <br>>specified that his source code was in CP1250.<br>> </fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>Yes It was my first strict expectation: <br>- code page of source file explicityl specified {$cod
 epage 1250}<br>- string constants are in this encoding so compiler is aware of encoding string constants</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>My second relaxed expectation was:</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>- if string variable is of type String(1250) (and initialized to string constant) then if assigned to string(CP_ACP), which I take as two distinct types, conversion should happen. But something goes wrong "in Lazarus".<br>To be fair, pure FPC console program (with DefaultSystemCodePage set to UTF-8) shows correct results, but in Lazarus the behavior is "strange". I believe, that this "strange" behavior can be explain
 ed, but for me is it hard to follow.</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>My conclusion up to now is, that dynamic code page of strings is not taken into account when assigned to Caption. Caption expects UTF-8, but supplied is cp1250. So only way how to handle this is do conversion explicitly in my code or use WideString, which works as expected and can be shared between Delphi7 and Lazarus.</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>Questions which remains for me unanswered:</fpc-pasca
 l@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>1. does FPC checks for dynamic code page of strings parameters in WriteLn() ? It should explain why strings are displayed correctly in console application</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>2. does my guess "if code page of source file = declared code page of string then compiler does not insert conversion code" is right?</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>3. does my guess "if destination code page of string is CP_ACP and source is string literal (in source file code page) then no conversion code is inserted" is right?</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pasc
 al@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org>-Laco.</fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div><div><fpc-pascal@lists.freepascal.org><fpc-pascal@lists.freepascal.org><br></fpc-pascal@lists.freepascal.org></fpc-pascal@lists.freepascal.org></div></body></html>