El 22/07/2016 a las 0:32, Bart escribió: > On 7/21/16, Santiago A. <s...@ciberpiula.net> wrote: > >> I've come across this issue: When I concatenate two strings in UTF8 they >> are converted to ansi (Win-1252) . > You have declared all string variables as plain "string", which is the > same as AnsiString(CP_ACP). So all string variables have the encoding > of your active codepage. > > Declare Utf8StrA and related as Utf8String. > In DisplayBytes do not use "String" as parametertype, since this will > again automatically convert things. > The AnsiToUtf8 is not necessary anymore if done this way:
var AnsiStrA:string; // AnsiString(CP_ACP) AnsiStrB:string; // AnsiString(CP_ACP) Utf8StrA: string; // AnsiString(CP_ACP) Utf8StrB: string; // AnsiString(CP_ACP) Utf8StrConcat:string; // AnsiString(CP_ACP) begin AnsiStrA:=' '; AnsiStrA[1]:=#243; // o acute win-1252 AnsiStrB:='A'; // AnsiStrA is AnsiString(CP_ACP) // AnsiStrB is AnsiString(CP_ACP) Utf8StrA:=AnsiToUtf8(AnsiStrA); // 195 179 Utf8StrB:=AnsiToUtf8(AnsiStrB); // 65 // is Utf8StrA now utf8string? or something similar like Ansistring(UTF_8) // is Utf8StrB now utf8string? or something similar like Ansistring(UTF_8) Utf8StrConcat:=Utf8StrA+Utf8StrB; // AnsiString(CP_ACP) = UTF8 + UT8 // automatic Conversion to ansiString(CP_ACP) ? end; -- Saludos Santi s...@ciberpiula.net _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal