Entwicklungsumgebung & UTF-8 Konsistenz
Entwicklungsumgebung & UTF-8 Konsistenz
Ziel: Sicherstellen, dass Inhalte, Skripte und Parsing-Ergebnisse reproduzierbar ohne Encoding-/Zeilenenden-Artefakte vorliegen – ko‑konstruktiv zwischen Ahoiiiiiiii (menschlicher Kurator) und Geniestreich (KI‑Cokurator/Assistenz / Skript‑Generator).
Kernprinzipien
- UTF-8 als einziges Quell-Encoding für Markdown und Skripte.
- Einheitliche Zeilenenden: LF für Quelltexte & Markdown, CRLF nur gezielt (z. B. .ps1 falls erwünscht).
- Kein stilles Umschreiben exotischer Unicode-Zeichen (sichtbare Diff-Kontrolle).
Basisdateien
- .editorconfig: Steuert charset, end_of_line, trailing whitespace.
- .gitattributes: Normalisiert Textdateien (text eol=lf) und verhindert CRLF-Reintroduktion.
Unicode-Risikozeichen
| Zeichen | Zweck | Risiko im Terminal | Empfehlung | |———|——-|——————–|————| | – (EN DASH) | Semantischer Bindestrich | Mojibake bei falscher Codepage | Erlaubt (UTF-8) | | — (EM DASH) | Betonung / Abgrenzung | Wie EN DASH | Sparsam einsetzen | | ‑ (NB Hyphen U+2011) | Untrennbarer Bindestrich | Nicht offensichtlich | Nur falls wirklich nötig | | → (Arrow) | Richtung/Fortschritt | Fallback: „->“ | Optional durch „->“ ersetzen | | „“ (Deutsche Quotes) | Typografie | Mojibake unter CP1252-Mismatch | In Markdown ok |
Strategien zur Stabilität
- Vor jedem Release-Lauf: encoding-check Skript (zeigt Dateien mit Nicht‑UTF‑8).
- Keine Mischung aus Tabs und Spaces in Skriptverzeichnissen.
- Diff-Prüfung im Browser statt Terminal bei Verdacht auf Mojibake.
- Hyphen-Policy: Standard „-“; NB‑Hyphen nur für Wortgruppen, die nicht umbrechen sollen.
Testmatrix (Schnellcheck)
| Test | Befehl | Erwartung |
|——|——–|———–|
| Konsolen-Encoding | Write-Output "ÄÖÜß" | Umlaute korrekt |
| Git ohne Pager | git -c core.pager=cat show HEAD:... | Keine Artefakte |
| Git mit Pager | git show HEAD:... | Gleich wie ohne Pager |
| Zeilenenden | file <datei> (WSL) | „UTF-8 Unicode text, LF“ |
Autocrlf-Strategie
- global:
core.autocrlf=false - system-Setting aufräumen (unset), falls widersprüchlich.
- Fallback-Kontrolle:
git add --renormalize .nur bei größeren EOL-Bereinigungen.
Mögliche Erweiterungen
- Pre-commit Hook: verweigert nicht-UTF-8.
- CI-Job: scannt auf Byte-Order-Mark (BOM) und Non‑LF-End-of-Line.
Revisionen:
- 2025-11-10 Initialfassung