Fix Windows-Konsolen-Encoding für Log-Ausgaben (UTF-8 vs. CP850)
- 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 <noreply@anthropic.com>
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
<Appenders>
|
||||
<!-- Console appender for stdout -->
|
||||
<Console name="Console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
|
||||
</Console>
|
||||
|
||||
<!-- Rolling file appender for logs in ./logs/ directory -->
|
||||
<RollingFile name="File" fileName="logs/pdf-umbenenner.log"
|
||||
filePattern="logs/pdf-umbenenner-%d{yyyy-MM-dd}-%i.log.gz">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
|
||||
<Policies>
|
||||
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
|
||||
<SizeBasedTriggeringPolicy size="10 MB"/>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<Appenders>
|
||||
<!-- Console appender for stdout -->
|
||||
<Console name="Console" target="SYSTEM_OUT">
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
|
||||
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" charset="UTF-8"/>
|
||||
</Console>
|
||||
</Appenders>
|
||||
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" %*
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
"%~dp0PDF-KI-Renamer\PDF-KI-Renamer.exe" --headless %*
|
||||
|
||||
Reference in New Issue
Block a user