38 lines
862 B
Markdown
38 lines
862 B
Markdown
|
# Unicode vs ANSI in der Windows-Konsole
|
|||
|
|
|||
|
Standardmäßig nutzt die Windows-Konsole eine ANSI-Codepage (z. B. 850 oder 1252). Für echte Unicode-Zeichen wie 📁 oder ✓ ist das oft ungeeignet.
|
|||
|
|
|||
|
## Problem
|
|||
|
|
|||
|
- Ohne UTF-8: Unicode-Zeichen erscheinen als Kästchen oder Müll
|
|||
|
- Ausgabe wie `📁` ergibt `ƒôü` oder ähnliches
|
|||
|
|
|||
|
## Lösung
|
|||
|
|
|||
|
### 1. UTF-8 aktivieren
|
|||
|
|
|||
|
```c
|
|||
|
#include <windows.h>
|
|||
|
SetConsoleOutputCP(65001); // Codepage 65001 = UTF-8
|
|||
|
```
|
|||
|
|
|||
|
### 2. Kompiler-Flag setzen
|
|||
|
|
|||
|
```cmd
|
|||
|
cl /utf-8 main.c ...
|
|||
|
```
|
|||
|
|
|||
|
### 3. Terminal unterstützen lassen
|
|||
|
|
|||
|
- `cmd.exe`: nur begrenzt tauglich
|
|||
|
- **Windows Terminal**: beste Wahl
|
|||
|
- PowerShell (v7+) ebenfalls ok
|
|||
|
|
|||
|
### 4. Schriftart beachten
|
|||
|
|
|||
|
- Monospace + Unicode-fähig: `Cascadia Code`, `Segoe UI Emoji`, `Fira Code`
|
|||
|
|
|||
|
## Hinweis
|
|||
|
|
|||
|
- Auch Eingabe (`SetConsoleCP`) kann auf UTF-8 gesetzt werden, wird aber selten benötigt
|