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
Windows 批处理文件中的ANSI/Unicode冲突_Windows_Batch File_Unicode_Character Encoding_Ansi - Fatal编程技术网

Windows 批处理文件中的ANSI/Unicode冲突

Windows 批处理文件中的ANSI/Unicode冲突,windows,batch-file,unicode,character-encoding,ansi,Windows,Batch File,Unicode,Character Encoding,Ansi,我有一些批处理文件,它们使用文本文件实现语言独立性。直到昨天一切都很好。。。但后来我开始把标准文本翻译成荷兰语和德语。两种语言都使用所谓的变音或重音字符,如ä,ë,ö。我认为西班牙语也会给尼娜带来同样的问题。我用记事本创建了文本文件,使用标准编码,即ANSI。只需键入(DOS:TYPE)文件就会显示错误的重音字符:例如,ë显示为Ù。在我编辑文本文件并用Unicode编码保存后,DOS类型正好显示了我在记事本中键入的内容。在这一点上,我认为我的问题已经解决了。。。但是我的批处理代码现在根本没有显示

我有一些批处理文件,它们使用文本文件实现语言独立性。直到昨天一切都很好。。。但后来我开始把标准文本翻译成荷兰语和德语。两种语言都使用所谓的变音或重音字符,如ä,ë,ö。我认为西班牙语也会给尼娜带来同样的问题。我用记事本创建了文本文件,使用标准编码,即ANSI。只需键入(DOS:TYPE)文件就会显示错误的重音字符:例如,ë显示为Ù。在我编辑文本文件并用Unicode编码保存后,DOS类型正好显示了我在记事本中键入的内容。在这一点上,我认为我的问题已经解决了。。。但是我的批处理代码现在根本没有显示任何文本!所有文本由一个批处理文件从文件中检索,该批处理文件如下(简化):

ECHO
ON
时,表示未从文件中读取任何行或从未执行FOR循环


我的问题是:如何使FOR循环读取Unicode文本?

您的问题是cmd使用代码页850(在美国可能是437),键入
chcp
查看。英语视窗在其他地方使用1252

图形用户界面程序

ñ 0xf1
控制台程序

ñ 0xa4

如果您使用的是32位,请使用edit.exe(msdos文本编辑器)。否则您可以使用Word并另存为MSDos文本。

三年后,但是

您可以使用
type
命令将文件转换为ANSI“即时”:

...  %%a in ('type "%EnvPath%Text.txt"') do (

首先尝试使用非unicode文件,但首先使用
CHCP
检查代码页。您可以尝试将代码页更改为支持德语的代码页,如20106-使用
CHCP 20106
。如果要使用cmd处理unicode文件,则必须使用
/U
开关启动命令提示符,或者尝试对页面
65001
进行编码代码页的信息:
...  %%a in ('type "%EnvPath%Text.txt"') do (