在为他人制作的批处理文件中使用另一种语言(代码页)
Using another language (code page) in a batch file made for others
所以我有一个原来是英文的批处理文件工具,我正在翻译成其他各种语言。我的情况是许多语言都使用特殊字符。就我而言,它是德语。
所以我可能有英文的:
echo Administrative permissions required. Detecting permissions...
那么在德语版中,我会:
Administratorrechte benötigt. Überprüfe Berechtigungen...
其中使用了不同类型的字符。现在,在我的研究中,我发现了 windows 命令 chcp
用于更改代码页。现在,我要做的是更改代码页(或任何其他执行此操作的方式)以允许显示这些字符。我当前的代码页是美国英语的代码页; 437
。对于德语,我相信我需要使用 1141
(source)。我了解到您可以执行更改 CMD 设置或通过注册表进行更多永久更改等操作。但是当一个随机的人以最小的努力运行这个文件时,我需要它是按需的。
我尝试通过在批处理文件的开头添加 chcp 1141
将代码页设置为 1141
,但这会导致错误。批处理文件无法再理解我的命令。
Windows 在 Windows 地区配置德国国家和语言设置使用 OEM code page 850 which is very similar to OEM code page 437。字符 ÄÖÜäöüß
在两个代码页中具有相同的二进制值。
不幸的是,使用没有 BOM 的 UTF-8 编码(代码页 65001)在 Windows 之前没有真正的选择 Windows 8,因为默认控制台字体是光栅字体 终端 不支持 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 只是显示错误消息:
The system cannot write to the specified device.
UTF-8 编码的批处理文件适用于 Windows 8 / 8.1 / 10,默认使用支持 Unicode 的字体 Consolas。感谢 eryksun 提供这些额外信息。
Microsoft 开发人员已经意识到由于不真正支持 Unicode 而导致的问题,并且正在致力于改进 Windows 控制台,请参阅 Rich Turner 于 12 月 10 日撰写的开发人员博客 Windows Command-Line: Unicode and UTF-8 Output Text Buffer, 2018.
所以我有一个原来是英文的批处理文件工具,我正在翻译成其他各种语言。我的情况是许多语言都使用特殊字符。就我而言,它是德语。
所以我可能有英文的:
echo Administrative permissions required. Detecting permissions...
那么在德语版中,我会:
Administratorrechte benötigt. Überprüfe Berechtigungen...
其中使用了不同类型的字符。现在,在我的研究中,我发现了 windows 命令 chcp
用于更改代码页。现在,我要做的是更改代码页(或任何其他执行此操作的方式)以允许显示这些字符。我当前的代码页是美国英语的代码页; 437
。对于德语,我相信我需要使用 1141
(source)。我了解到您可以执行更改 CMD 设置或通过注册表进行更多永久更改等操作。但是当一个随机的人以最小的努力运行这个文件时,我需要它是按需的。
我尝试通过在批处理文件的开头添加 chcp 1141
将代码页设置为 1141
,但这会导致错误。批处理文件无法再理解我的命令。
Windows 在 Windows 地区配置德国国家和语言设置使用 OEM code page 850 which is very similar to OEM code page 437。字符 ÄÖÜäöüß
在两个代码页中具有相同的二进制值。
不幸的是,使用没有 BOM 的 UTF-8 编码(代码页 65001)在 Windows 之前没有真正的选择 Windows 8,因为默认控制台字体是光栅字体 终端 不支持 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 只是显示错误消息:
The system cannot write to the specified device.
UTF-8 编码的批处理文件适用于 Windows 8 / 8.1 / 10,默认使用支持 Unicode 的字体 Consolas。感谢 eryksun 提供这些额外信息。
Microsoft 开发人员已经意识到由于不真正支持 Unicode 而导致的问题,并且正在致力于改进 Windows 控制台,请参阅 Rich Turner 于 12 月 10 日撰写的开发人员博客 Windows Command-Line: Unicode and UTF-8 Output Text Buffer, 2018.