Date: Tue, 10 Sep 2019 17:07:34 -0700
On Sunday, 8 September 2019 16:25:47 PDT Tom Honermann wrote:
> I think Microsoft will eventually provide (non-experimental) means to use
> UTF-8 with Win32 and that this will likely come in three forms:
>
> 1) support for UTF-8 as the system wide Active Code Page (ACP). This is
> already available as an experimental option.
>
> 2) support for executables to opt-in to a per-process override of the system
> wide ACP. In this mode, stdio would presumably traffic in the system wide
> ACP and require transcoding (I don’t think implicit transcoding is
> realistic). This is already available as an experimental option.
2b) support for the runtime to opt-in to a per-runtime override of the system-
wide ACP for the API it provides, but not the Win32 "A" API. That would
rehabilitate fopen() and all the C and C++ standard APIs, facilitating porting
from other OSes and enabling UTF-8 new code. Moreover, it need not be process-
wide: other runtime assemblies loaded in the same process can continue with
whatever they were coded to use.
Note that loading multiple runtimes in a process is a horrible idea, though
entirely possible. Source of many a bug report about crashing when freeing
memory.
>
> 3) support for a subset of Win32 interfaces that take char8_t. E.g., U8
> variants of some existing A/W interfaces.
> I think Microsoft will eventually provide (non-experimental) means to use
> UTF-8 with Win32 and that this will likely come in three forms:
>
> 1) support for UTF-8 as the system wide Active Code Page (ACP). This is
> already available as an experimental option.
>
> 2) support for executables to opt-in to a per-process override of the system
> wide ACP. In this mode, stdio would presumably traffic in the system wide
> ACP and require transcoding (I don’t think implicit transcoding is
> realistic). This is already available as an experimental option.
2b) support for the runtime to opt-in to a per-runtime override of the system-
wide ACP for the API it provides, but not the Win32 "A" API. That would
rehabilitate fopen() and all the C and C++ standard APIs, facilitating porting
from other OSes and enabling UTF-8 new code. Moreover, it need not be process-
wide: other runtime assemblies loaded in the same process can continue with
whatever they were coded to use.
Note that loading multiple runtimes in a process is a horrible idea, though
entirely possible. Source of many a bug report about crashing when freeing
memory.
>
> 3) support for a subset of Win32 interfaces that take char8_t. E.g., U8
> variants of some existing A/W interfaces.
-- Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org Software Architect - Intel System Software Products
Received on 2019-09-11 02:07:36