[fpc-devel] twide3.pp on windows

Daniël Mantione daniel.mantione at freepascal.org
Mon Jul 16 20:49:59 CEST 2007



Op Mon, 16 Jul 2007, schreef Yury Sidorov:

> From: "Dani=EBl Mantione" <daniel.mantione at freepascal.org>
> > Op Mon, 16 Jul 2007, schreef Yury Sidorov:
> > =

> > > The code page (locale) is set in Control Panel for whole user
> > > session (or
> > > whole system).
> > > It is not possible to set utf8 as locale.
> > =

> > I know. How do you set it to a specific locale for the current
> > application?
> =

> widestring to ansistring conversion is performed using WideCharToMultiByt=
e.
> Currently it is done using ANSI code page specified in Control Panel.
> There is no per application code page setting in Windows.

There must be, because the CRT unit currently seems to do such vodoo =

(which is questionable behaviour by the way).

> > > We can create flag in System unit which control how
> > > widestring<->ansistring
> > > should be performed to enable utf8 on Windows.
> > =

> > No, you cannot (at least not with full functionality), since uppercasing
> > and compare operations on UTF-8 ansistrings you need a Unicode library,
> > which Windows does only provide in UTF-16 flavour.
> =

> WideCharToMultiByte can convert from widestring to utf8 if corresponding =
flag
> is specified. This flag is available in Windows 98/Me, Windows NT 4.0 and
> later.
> MultiByteToWideChar do reverse conversion.
> =

> This functions already used in System unit for Windows.

Yes, but how would you implement ansiuppercase and friends when utf8 flag =

is set to true?

Dani=EBl


More information about the fpc-devel mailing list