Am 28.02.2014 15:42, schrieb Michael Schnell:
On 02/28/2014 03:00 PM, Sven Barth wrote:
As long as not stated differently AnsiString and UnicodeString are meant as implemented in FPC trunk.
Can you point me to a _final_ documentation on this ?
Work on final documentation will be started when 2.8/3.0 will be released. Till then wiki.freepascal.org/FPC_Unicode_Support can be considered the documentation. Please note that the non existance of a documentation does not mean that a feature is not considered final. And the new string type is working as it should, what's still left is to adjust the RTL for more Ansi-/UnicodeString awareness.
Of course I know how this works (otherwise this discussion would not make any sense at all) that the implementation of the string record allows for this, but Embarcadero does not allow the users to decently take advantage of it.
 - "non-Raw" does not allow for modifying the type and code-length fields
Yes, but you can always do it by converting to RawByteString:

=== code begin ===

function ChangeCodePage(aStr: RawByteString; aCodePage: TSystemCodePage): RawByteString;
begin
  Result := aStr;
  SetCodePage(Result, aCodePage, False);
end;

var
  s: UTF8String;
begin
  s := 'Hello World';
  Writeln(StringCodePage(s));
  s := ChangeCodePage(s, CP_ACP);
  Writeln(StringCodePage(s));
end.

=== code end ===

=== output begin ===

65001
0

=== output end ===

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to