When running command-line utilities, executing Python scripts, compiling software, or viewing text files containing non-ASCII characters in Windows 11, terminal output frequently degrades into illegible gibberish. Accented vowels, Cyrillic letters, East Asian scripts, and modern Unicode emojis often render as question marks or corrupt symbols known as “mojibake”. This issue stems from legacy Windows character encoding: standard Command Prompt sessions default to legacy OEM code pages such as Code Page 437 (US) or 850 (Western European). The built-in chcp (Change Code Page) utility allows you to switch the active console character set to Unicode UTF-8. Learning how to use the chcp command in Windows 11 ensures seamless display of international character sets.
What Is a Windows Console Code Page?
A code page is a character encoding mapping table that links specific byte values to displayable characters on your monitor:
- OEM Code Page 437: The legacy IBM PC character set used by default on North American Windows installations.
- OEM Code Page 850: The traditional Multilingual Latin 1 code page common across Western Europe.
- Code Page 65001: The international standard UTF-8 Unicode encoding. UTF-8 supports over 140,000 characters spanning virtually all modern writing systems, mathematical notations, and technical symbols.
How to Check the Current Active Code Page Using chcp
To inspect which character encoding your current terminal session is using:
- Press
Win + R, typecmdorwt, and press Enter to launch Command Prompt or Windows Terminal. - Type the following command without arguments and press Enter:
chcp - The terminal displays your active code page, for example: Active code page: 437.
How to Switch to UTF-8 Encoding in the Active Session
To switch your current terminal window to UTF-8 mode immediately:
- In your Command Prompt or PowerShell terminal, run:
chcp 65001 - The console confirms the update by outputting: Active code page: 65001.
- From this moment on, running scripts that output UTF-8 text, curl requests displaying foreign web pages, or tools such as Git log displaying international commit messages will render properly without character corruption.
How to Make UTF-8 the Default in Command Prompt via the Windows Registry
Running chcp 65001 affects only the active terminal window. If you wish to make UTF-8 the permanent default every time you launch Command Prompt:
- Press
Win + R, typeregedit, and press Enter to open the Registry Editor. - Navigate to the following registry path:
HKEY_CURRENT_USER\Software\Microsoft\Command Processor - Right-click in the right pane, select New > String Value, and name the value
Autorun. - Double-click
Autorunand set its Value data to:chcp 65001 > nul - Click OK. Adding
> nulsilences the status confirmation text so Command Prompt opens cleanly with UTF-8 automatically pre-loaded.
Enabling System-Wide Beta UTF-8 Support in Windows 11
Windows 11 also includes an optional operating-system-level flag for non-Unicode programs:
- Open the legacy Control Panel and select Clock and Region > Region.
- Switch to the Administrative tab.
- Click Change system locale… (requires administrative permissions).
- Check the box labeled Beta: Use Unicode UTF-8 for worldwide language support.
- Click OK and restart your PC. This forces legacy Win32 non-Unicode software to interpret ANSI text as UTF-8 by default.