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

  1. Vor jedem Release-Lauf: encoding-check Skript (zeigt Dateien mit Nicht‑UTF‑8).
  2. Keine Mischung aus Tabs und Spaces in Skriptverzeichnissen.
  3. Diff-Prüfung im Browser statt Terminal bei Verdacht auf Mojibake.
  4. 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