gnucash stable: Mingw64: Use a manifest to force the codepage to UTF8
John Ralls
jralls at code.gnucash.org
Mon Sep 14 17:48:53 EDT 2026
Updated via https://github.com/Gnucash/gnucash/commit/038f90a7 (commit)
from https://github.com/Gnucash/gnucash/commit/0eb3e8eb (commit)
commit 038f90a798f205c4495062373aa5628bac39347a
Author: John Ralls <jralls at ceridwen.us>
Date: Sun Sep 13 15:45:10 2026 -0700
Mingw64: Use a manifest to force the codepage to UTF8
Fixes a variety of path with special character problems on Windows.
Assisted-by: Gemini <https://gemini.google.com>
Signed-off: John Ralls <jralls at ceridwen.us>
diff --git a/gnucash/CMakeLists.txt b/gnucash/CMakeLists.txt
index 731ad4adf0..69259a0257 100644
--- a/gnucash/CMakeLists.txt
+++ b/gnucash/CMakeLists.txt
@@ -93,6 +93,7 @@ set (gnucash_SOURCES
if (MINGW)
list(APPEND gnucash_SOURCES "gnucash-locale-windows.c")
+ list(APPEND gnucash_SOURCES "gnucash-manifest.rc")
elseif (MAC_INTEGRATION)
list(APPEND gnucash_SOURCES "gnucash-locale-macos.mm")
endif()
@@ -121,6 +122,7 @@ set(gnucash_cli_SOURCES
if (MINGW)
list(APPEND gnucash_cli_SOURCES "gnucash-locale-windows.c")
+ list(APPEND gnucash_cli_SOURCES "gnucash-manifest.rc")
elseif (MAC_INTEGRATION)
list(APPEND gnucash_cli_SOURCES "gnucash-locale-macos.mm")
endif()
@@ -271,7 +273,8 @@ install(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION
set_local_dist(gnucash_DIST_local CMakeLists.txt environment.in generate-gnc-script
gnucash.cpp gnucash-commands.cpp gnucash-cli.cpp gnucash-core-app.cpp
- gnucash-locale-macos.mm gnucash-locale-windows.c gnucash.rc.in gnucash-valgrind.in
+ gnucash-locale-macos.mm gnucash-locale-windows.c gnucash.rc.in
+ gnucash-valgrind.in gnucash-manifest.rc gnucash-utf8.manifest
${gnucash_GRESOURCES}
${gnucash_noinst_HEADERS} ${gnucash_EXTRA_DIST})
diff --git a/gnucash/gnucash-manifest.rc b/gnucash/gnucash-manifest.rc
new file mode 100644
index 0000000000..240b875b8e
--- /dev/null
+++ b/gnucash/gnucash-manifest.rc
@@ -0,0 +1,4 @@
+#include <windows.h>
+// CREATEPROCESS_MANIFEST_RESOURCE_ID = 1
+// RT_MANIFEST is the resource type
+1 RT_MANIFEST "gnucash-utf8.manifest"
diff --git a/gnucash/gnucash-utf8.manifest b/gnucash/gnucash-utf8.manifest
new file mode 100644
index 0000000000..957e5931e6
--- /dev/null
+++ b/gnucash/gnucash-utf8.manifest
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+
+ <application>
+ <windowsSettings>
+ <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
+ </windowsSettings>
+ </application>
+</assembly>
Summary of changes:
gnucash/CMakeLists.txt | 5 ++++-
gnucash/gnucash-manifest.rc | 4 ++++
gnucash/gnucash-utf8.manifest | 9 +++++++++
3 files changed, 17 insertions(+), 1 deletion(-)
create mode 100644 gnucash/gnucash-manifest.rc
create mode 100644 gnucash/gnucash-utf8.manifest
More information about the gnucash-changes
mailing list