On Mon, 25 Jul 2016 23:23:23 +0200 Jonas Maebe <jonas.ma...@elis.ugent.be> wrote:
> On 25/07/16 23:07, Mattias Gaertner wrote: > > DefaultSystemCodePage = 1252 > > s3 = "abcdef" cp = 65001 > > Thanks. So the rule for concatenation appears to be: > * the dynamic code page of the result of a string concatenation is that > of the left operand (except if it's an empty string, then it's that of > the right operand) > * the declared code page of the final concatenation result is that of > the left operand Here are some more hints: {$APPTYPE CONSOLE} type tcp866 = type ansistring(866); var s1, s2: tcp866; u1: UTF8String; r1: RawByteString; begin s1:='abc'; setcodepage(rawbytestring(s1),65001,false); Writeln('s1 = "', s1, '" cp = ', StringCodePage(s1)); u1:='nop'; Writeln('u1 = "', u1, '" cp = ', StringCodePage(u1)); s2:=s1+u1; Writeln('s2 = "', s2, '" cp = ', StringCodePage(s2)); s2:=u1+s1; Writeln('s2 = "', s2, '" cp = ', StringCodePage(s2)); r1:=s1+u1; Writeln('r1 = "', r1, '" cp = ', StringCodePage(r1)); r1:=u1+s1; Writeln('r1 = "', r1, '" cp = ', StringCodePage(r1)); readln; end. s1 = "abc" cp = 65001 u1 = "nop" cp = 65001 s2 = "abcnop" cp = 866 s2 = "nopabc" cp = 866 r1 = "abcnop" cp = 1252 r1 = "nopabc" cp = 1252 Mattias _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal