From 3e1f59fd124c8999e6d551943fcecae7c86c1207 Mon Sep 17 00:00:00 2001 From: Marcus van Elst Date: Wed, 22 Apr 2026 12:13:50 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20Windows-Konsolen-Encoding=20f=C3=BCr=20Lo?= =?UTF-8?q?g-Ausgaben=20(UTF-8=20vs.=20CP850)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - log4j2.xml: charset="UTF-8" explizit auf beiden PatternLayout-Elementen (Console + RollingFile), damit Log4j2 unabhängig vom JVM-Standard UTF-8 schreibt - Batch-Dateien: chcp 65001 vor dem EXE-Aufruf, damit die Windows-Konsole die UTF-8-Bytes korrekt anzeigt - docs/betrieb.md: neuer Abschnitt "Konsolen-Encoding unter Windows" mit Hinweis auf chcp 65001 und -Dstdout.encoding=UTF-8 für den direkten Standalone-JAR-Start Co-Authored-By: Claude Sonnet 4.6 --- docs/betrieb.md | 22 +++++++++++++++++++ .../src/main/resources/log4j2.xml | 4 ++-- .../src/test/resources/log4j2.xml | 2 +- .../src/main/packaging/PDF-KI-Renamer-GUI.bat | 1 + .../src/main/packaging/PDF-KI-Renamer.bat | 1 + 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/docs/betrieb.md b/docs/betrieb.md index 1277bfc..ebaf7cb 100644 --- a/docs/betrieb.md +++ b/docs/betrieb.md @@ -102,6 +102,28 @@ java -jar pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHO Die Anwendung liest die Konfiguration standardmäßig aus `config/application.properties` relativ zum Arbeitsverzeichnis, in dem der Befehl ausgeführt wird. +### Konsolen-Encoding unter Windows + +Die Anwendung schreibt alle Log-Ausgaben in UTF-8. Windows-Konsolen (PowerShell, CMD) verwenden +standardmäßig den OEM-Codepage (z. B. CP850), was zu unlesbaren Sonderzeichen führt. + +**Lösung:** Konsole vor dem Start auf UTF-8 umschalten: + +``` +chcp 65001 +java -jar pdf-umbenenner-bootstrap-*.jar --headless +``` + +Alternativ kann die UTF-8-Ausgabe auch als JVM-Argument angegeben werden (Java 17+): + +``` +java -Dstdout.encoding=UTF-8 -jar pdf-umbenenner-bootstrap-*.jar --headless +``` + +> **Hinweis:** Die mitgelieferten Batch-Dateien (`PDF-KI-Renamer.bat`, `PDF-KI-Renamer-GUI.bat`) +> rufen `chcp 65001` automatisch auf. Der Windows Task Scheduler schreibt Log-Ausgaben in eine +> Protokolldatei, die stets UTF-8-kodiert ist – dort entsteht kein Anzeigeproblem. + ### Start über Windows Task Scheduler Empfohlene Startsequenz für den headless Betrieb über den Windows Task Scheduler: diff --git a/pdf-umbenenner-bootstrap/src/main/resources/log4j2.xml b/pdf-umbenenner-bootstrap/src/main/resources/log4j2.xml index 4603f07..360ac74 100644 --- a/pdf-umbenenner-bootstrap/src/main/resources/log4j2.xml +++ b/pdf-umbenenner-bootstrap/src/main/resources/log4j2.xml @@ -3,13 +3,13 @@ - + - + diff --git a/pdf-umbenenner-bootstrap/src/test/resources/log4j2.xml b/pdf-umbenenner-bootstrap/src/test/resources/log4j2.xml index 682b3f5..c92f6b3 100644 --- a/pdf-umbenenner-bootstrap/src/test/resources/log4j2.xml +++ b/pdf-umbenenner-bootstrap/src/test/resources/log4j2.xml @@ -3,7 +3,7 @@ - + diff --git a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat index 505d8bb..dad258f 100644 --- a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat +++ b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer-GUI.bat @@ -1,2 +1,3 @@ @echo off +chcp 65001 >nul "%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" %* diff --git a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat index 8b8772e..7c90903 100644 --- a/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat +++ b/pdf-umbenenner-packaging/src/main/packaging/PDF-KI-Renamer.bat @@ -1,2 +1,3 @@ @echo off +chcp 65001 >nul "%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" --headless %*