[GNC-dev] MS support for UTF-8; was: [gnucash-de] Export - Import, Verwendeter Zeichensatz

John Ralls jralls at ceridwen.us
Tue Feb 23 12:00:03 EST 2021

> On Feb 23, 2021, at 3:28 AM, Frank H. Ellenberger <frank.h.ellenberger at gmail.com> wrote:
> google translated:
>> Microsoft has been using the then current forerunner of UTF-16 since NT
>> ("wide characters"), but don't ask me for the code page etc.
> To add my mustard: recommended since Windows 10 1903
> Microsoft apps that want to use UTF-8 have that in their AppX manifest
> then ALWAYS use UTF-8 with this app. Please refer:
> https://docs.microsoft.com/de-de/windows/uwp/design/globalizing/use-utf8-code-page
> Then the ANSI versions of the library routines (ACHAR
> instead of WCHAR) the UTF-8 encoding, and the app itself only sees UTF-8.
> Simply integrate the corresponding XAML file into the Windows build,
> and the problem is no more (as long as you use Windows 10 from 1903).
> greeting
> Heinz
> -------- Weitergeleitete Nachricht --------
> Betreff: Re: [gnucash-de] Export - Import, Verwendeter Zeichensatz
> Datum: Tue, 23 Feb 2021 11:23:46 +0100
> Von: Heinz Repp <heinz.repp at freenet.de>
> An: gnucash-de at gnucash.org
> Hallo,
> Am 18.02.2021 um 02:31 schrieb Frank H. Ellenberger:
>> Microsoft verwendet seit NT den damals aktuellen Vorläufer von UTF-16
>> ("wide characters"), aber fragt mich jetzt nicht nach der Codepage etc.
> Um auch meinen Senf dazu zu geben: seit Windows 10 1903 empfiehlt
> Microsoft Apps, die UTF-8 verwenden wollen, das in ihrem AppX-Manifest
> festzuschreiben, dann wird IMMER UTF-8 mit dieser App verwendet. Siehe:
>> https://docs.microsoft.com/de-de/windows/uwp/design/globalizing/use-utf8-code-page
> Dann verwenden auch die ANSI-Versionen der Bibliotheksroutinen (ACHAR
> statt WCHAR) die UTF-8-Codierung, und die App selbst sieht nur UTF-8.
> Einfach in den Windows-Build die enstprechende XAML-Datei integrieren,
> und das Problem ist keins mehr (solange man Windows 10 ab 1903 verwendet).
> Gruß
> Heinz


The English version of that page is https://docs.microsoft.com/en-us/windows/uwp/design/globalizing/use-utf8-code-page and it includes an example fusion manifest that we could add to gnucash.exe along with a command line to incorporate it. We just need to figure out how to add that to our Windows build system. Note that the command, mt.exe, is distributed with the Windows SDK.

As noted it doesn't help the users who are still on older versions of Windows--but with Windows 8.1 out of mainstream support for 3 years and only 2 left for extended support and considering the difficulty of keeping MS from upgrading Win10 whether you want it or not, perhaps that's not a big deal.

John Ralls

More information about the gnucash-devel mailing list