Zitat von Florian Klaempfl <florian@freepascal.org>:

> Michael Van Canneyt wrote:
> >
> > On Tue, 1 Jul 2008, Paul Ishenin wrote:
> >
> >> Michael Van Canneyt wrote:
> >>> You can still do C:=S[i]. What you cannot do is
> >>>
> >>>   P:=PChar(S);
> >>>   While (P^<>#0) do
> >>>    SomeByteSizedOperation;
> >>>
> >> Why you cannot? PChar(S) should represent S as raw bytes. If you know what
> you
> >> are doing - it will not harm. In other case, if you corrupt the string
> then
> >> you are responsibile for all problems you get.
> >
> > Obviously you can :-)
> > But what I meant was that you shouldn't expect old code
> > that relied on 1-byte characters to work.
>
> It is supposed to break on utf-xx or whatever anyways.

The above works normally for UTF-8. UTF-8 was designed for this. That's why most
ansistring code works with UTF-8. Switching to UTF-8 was easy. Switching to
UTF-16 needs more work.
And a multi encoded string will break even more things. Means: more work. The
question is: how much more?


Mattias


