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