Przejdź do głównej zawartości

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.


Okno terminala
chcp [<NNN>]
  • <NNN> – opcjonalny numer strony kodowej do ustawienia (np. 43765001).
  • Bez parametru – wyświetla bieżący numer strony kodowej.
  • chcp /? – wyświetla pomoc w konsoli.

ArgumentOpis
<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.


  1. Wyświetlenie bieżącej strony kodowej

    Okno terminala
    C:\> chcp
    Active code page: 437
  2. Przełączenie na UTF-8

    Okno terminala
    C:\> chcp 65001
    Active code page: 65001
  3. Przywrócenie domyślnej strony kodowej OEM US

    Okno terminala
    C:\> chcp 437
    Active code page: 437
  4. 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).

BłądPrzyczynaRozwią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. 43765001.
‘chcp’ is not recognized as an internal or external commandUruchomiono w PowerShell lub brak w PATH.Użyj Command Prompt (cmd.exe) lub dodaj %SystemRoot%\System32 do zmiennej PATH.
Brak efektu zmiany kodowania w skrypciechcp wywołano wewnątrz bloku IF/FOR.Wywołaj chcp poza blokiem lub zakończ blok przed zmianą kodowania.
Aplikacja wyświetla ’?’ zamiast znakówAplikacja 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łacmd.exe /c uruchamia nową konsolę, zmiana dotyczy tylko jej.Wstaw chcp 1252 bezpośrednio w pliku .bat, aby zmiana dotyczyła bieżącej sesji.