Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 带有非ASCII字符的批处理文件_Batch File - Fatal编程技术网

Batch file 带有非ASCII字符的批处理文件

Batch file 带有非ASCII字符的批处理文件,batch-file,Batch File,我需要链接到一个包含批处理脚本中字符“æ”的文件夹 不过,当我运行脚本时,我遇到了麻烦。命令提示符误读非ASCII字符。我已尝试将文件同时保存为ANSI和Unicode。我正在运行Windows7 下面是一个简单的例子: echo øl 控制台窗口中默认使用的是ANSI还是Unicode。默认情况下,Windows用于控制台aOEM代码页 使用哪个OEM代码页取决于Windows区域和语言设置。对于美国和加拿大,默认OEM代码页为,对于西欧国家,默认代码页为 对于美国、加拿大和西欧国家,GUI

我需要链接到一个包含批处理脚本中字符“æ”的文件夹

不过,当我运行脚本时,我遇到了麻烦。命令提示符误读非ASCII字符。我已尝试将文件同时保存为ANSI和Unicode。我正在运行Windows7

下面是一个简单的例子:

echo øl

控制台窗口中默认使用的是ANSI还是Unicode。默认情况下,Windows用于控制台aOEM代码页

使用哪个OEM代码页取决于Windows区域和语言设置。对于美国和加拿大,默认OEM代码页为,对于西欧国家,默认代码页为

对于美国、加拿大和西欧国家,GUI窗口中的非Unicode代码页是可用的

在代码页Windows-1252以及Unicode表中,该字符具有十进制代码值230(十六进制.E6)。但在OEM代码页437和850中,此字符的十进制代码值为145(十六进制91)

因此,您需要使用建议的方法将此字符插入批处理文件,或者直接使用适当的OEM代码页在文本编辑器中编辑批处理文件

我正在使用UltraEdit编辑文本文件。我已将UltraEdit配置为自动使用系统定义的OEM代码页(在我的情况下为代码页850),用于扩展名为BAT和CMD的文件,并用于所有其他非Unicode文本文件GUI窗口的系统代码页(在我的情况下为代码页1252)。UltraEdit还可以在将例如在浏览器中复制的文本粘贴到批处理文件时,从Unicode或Windows-1252转换为OEM代码页850。将批处理文件中的选定文本复制到剪贴板时,UltraEdit还会将OEM编码的字符从850转换为1252和Unicode


要在控制台窗口中查找您的机器上使用的OEM代码页,请打开命令提示窗口,然后运行command
chcp
mode con

我使用记事本++。选择第一种编码(以OEM 850为例)并正常键入。

Ugh,我知道如何解决这个问题,但我对其背后的机制了解不够,无法给出正确的答案。基本上,将
æ
替换为
(即ALT+0145)。