Using another language (code page) in a batch file made for others

Windows with a German country configured in Windows region and language settings use OEM code page 850 which is very similar to OEM code page 437. The characters ÄÖÜäöüß have same binary value in both code pages.

Usage of UTF-8 encoding with no BOM (code page 65001) is unfortunately no real option on Windows prior Windows 8 as the default console font is raster font Terminal not supporting Unicode.

A batch file encoded in UTF-8 with no byte order mark with the command lines

@echo off
%SystemRoot%\System32\chcp.com 65001 >nul
echo Es werden Administratorrechte benötigt. Überprüfe Berechtigungen ...

results either in nothing output on Windows XP or on Windows Vista and Windows 7 in getting just displayed the error message:

The system cannot write to the specified device.

The UTF-8 encoded batch file works on Windows 8 / 8.1 / 10 which uses by default the font Consolas supporting Unicode. Thanks eryksun for this additional information.

The Microsoft developers are aware of the issues caused by not really supporting Unicode and are working on improvements of the Windows console, see the developer blog Windows Command-Line: Unicode and UTF-8 Output Text Buffer written by Rich Turner on December 10, 2018.

Leave a Comment