在为其他人制作的批处理文件中使用另一种语言(代码页)

时间:2018-02-26 04:17:10

标签: windows batch-file cmd codepages

所以我有一个最初是英文的批处理文件工具,我已经翻译成各种其他语言。我的情况是许多语言都使用特殊字符。就我而言,它是德国人。

所以我可能会使用英文版:

echo Administrative permissions required. Detecting permissions...

然后在德语中,我有:

Administratorrechte benötigt. Überprüfe Berechtigungen...

使用不同类型的字符。现在,在我的研究中,我发现Windows命令chcp用于更改代码页。现在,我正在尝试做的是更改代码页(或任何其他方式)以允许显示这些字符。我目前的代码页是美国英语的代码页; 437。对于德语,我认为我需要使用1141source)。我已经读过您可以执行更改CMD设置或通过注册表进行更多永久性更改等操作。但是当一个随机的人以最小的努力运行这个文件时,我需要这个按需。

我已经尝试通过在批处理文件的开头添加1141将代码页设置为chcp 1141,但这会导致错误。批处理文件不再能理解我的命令。

1 个答案:

答案 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获取此附加信息。