chcp
Komenda chcp
(skrót od Change Code Page) jest wbudowanym poleceniem cmd.exe
, które pozwala na modyfikację aktywnej strony kodowej konsoli lub jej wyświetlenie, gdy wywołane jest bez parametrów. Każda strona kodowa jest identyfikowana przez numer, np. 437 (OEM United States), 1250 (Windows Central Europe) czy 65001 (UTF-8). Zmiana strony kodowej wpływa wyłącznie na wewnętrzne działanie konsoli i nie modyfikuje kodowania plików ani ustawień innych aplikacji.
Składnia
Dział zatytułowany „Składnia”chcp [<NNN>]
<NNN>
– opcjonalny numer strony kodowej do ustawienia (np.437
,65001
).- Bez parametru – wyświetla bieżący numer strony kodowej.
chcp /?
– wyświetla pomoc w konsoli.
Parametry
Dział zatytułowany „Parametry”Argument | Opis |
---|---|
<NNN> | Numer strony kodowej, którą chcemy ustawić. Przykłady: |
– 437 – OEM United States; | |
– 850 – OEM Multilingual (Latin I); | |
– 1250 – ANSI Central Europe; | |
– 65001 – UTF-8. |
Uwaga: Lista obsługiwanych stron kodowych zależy od wersji systemu i ustawień regionalnych.
Przykłady użycia
Dział zatytułowany „Przykłady użycia”-
Wyświetlenie bieżącej strony kodowej
Okno terminala C:\> chcpActive code page: 437 -
Przełączenie na UTF-8
Okno terminala C:\> chcp 65001Active code page: 65001 -
Przywrócenie domyślnej strony kodowej OEM US
Okno terminala C:\> chcp 437Active code page: 437 -
Automatyczne ustawienie w rejestrze
[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]"Autorun"="@chcp 65001>nul"
- Zmiana kodowania działa tylko w aktualnej sesji consoli i znika po jej zamknięciu.
- W niektórych blokach skryptów (IF, FOR) efekt może być widoczny dopiero po opuszczeniu bloku.
- Kod 65001 (UTF-8) bywa częściowo obsługiwany w starszych wersjach Windows.
- Aby trwale ustawić UTF-8 w całym systemie, można w Panelu sterowania → Region → Zaawansowane włączyć „Użyj Unicode UTF-8”.
- W PowerShell kodowanie zmienia się inaczej (
[Console]::OutputEncoding
).
Najczęściej spotykane błędy i jak je naprawić
Dział zatytułowany „Najczęściej spotykane błędy i jak je naprawić”Błąd | Przyczyna | Rozwiązanie |
---|---|---|
Invalid code page: <NNN> | Numer strony kodowej nieobsługiwany lub literówka. | Sprawdź listę dostępnych stron kodowych (chcp bez parametru) i użyj poprawnej wartości, np. 437 , 65001 . |
‘chcp’ is not recognized as an internal or external command | Uruchomiono w PowerShell lub brak w PATH. | Użyj Command Prompt (cmd.exe) lub dodaj %SystemRoot%\System32 do zmiennej PATH. |
Brak efektu zmiany kodowania w skrypcie | chcp wywołano wewnątrz bloku IF/FOR. | Wywołaj chcp poza blokiem lub zakończ blok przed zmianą kodowania. |
Aplikacja wyświetla ’?’ zamiast znaków | Aplikacja używa własnego kodowania lub ANSI code page. | Ustaw kodowanie ANSI lub Unicode w aplikacji, albo zmień domyślną stronę kodową systemu przez rejestr lub odpowiednie narzędzia. |
cmd.exe /c chcp 1252 w skrypcie nie działa | cmd.exe /c uruchamia nową konsolę, zmiana dotyczy tylko jej. | Wstaw chcp 1252 bezpośrednio w pliku .bat , aby zmiana dotyczyła bieżącej sesji. |