所以我有一个最初是英文的批处理文件工具,我已经翻译成各种其他语言。我的情况是许多语言都使用特殊字符。就我而言,它是德国人。
所以我可能会使用英文版:
echo Administrative permissions required. Detecting permissions...
然后在德语中,我有:
Administratorrechte benötigt. Überprüfe Berechtigungen...
使用不同类型的字符。现在,在我的研究中,我发现Windows命令chcp
用于更改代码页。现在,我正在尝试做的是更改代码页(或任何其他方式)以允许显示这些字符。我目前的代码页是美国英语的代码页; 437
。对于德语,我认为我需要使用1141
(source)。我已经读过您可以执行更改CMD设置或通过注册表进行更多永久性更改等操作。但是当一个随机的人以最小的努力运行这个文件时,我需要这个按需。
我已经尝试通过在批处理文件的开头添加1141
将代码页设置为chcp 1141
,但这会导致错误。批处理文件不再能理解我的命令。
答案 0 :(得分:2)
在Windows区域和语言设置中配置德语国家/地区的Windows使用OEM code page 850,这与OEM code page 437非常相似。字符ÄÖÜäöüß
在两个代码页中都具有相同的二进制值。
遗憾的是,在Windows 8之前的Windows上使用没有BOM的UTF-8编码(代码页65001),因为默认的控制台字体是光栅字体终端不支持Unicode。
以UTF-8编码的批处理文件,没有带命令行的字节顺序标记
@echo off
%SystemRoot%\System32\chcp.com 65001 >nul
echo Es werden Administratorrechte benötigt. Überprüfe Berechtigungen ...
在Windows XP或Windows Vista和Windows 7上没有输出结果只显示错误消息:
系统无法写入指定的设备。
UTF-8编码的批处理文件适用于Windows 8 / 8.1 / 10,默认情况下使用支持Unicode的字体 Consolas 。感谢eryksun获取此附加信息。