如何在批处理文件中回显0x96字符?

时间:2011-01-04 15:41:23

标签: unicode batch-file command ansi

我的标题中有一个TFS项目,标题为0x96,例如我需要在批处理文件中引用“Project - X”。问题是这个特定的破折号由0x96(而不是0x20)表示,它是Unicode中的控制字符(û在ASCII?中),因此以下(在ANSI编码的.cmd文件中)失败为“ProjectûX”。

echo "Project – X"

但是直接粘贴到命令行(我认为)它会欺骗并将0x96转换为0x20(这是不好的,因为我的文件名不匹配)。我尝试使用十六进制编辑器,看起来有一些作弊行为。

如果.cmd文件被编码为ANSI以外的其他文件,则无效。

2 个答案:

答案 0 :(得分:3)

默认情况下,cmd.exe使用旧的“OEM”代码页,而Unicode前Windows应用程序使用“ANSI”代码页(Code Pages Supported by Windows)。

您将(as jeb alludes)要么以OEM编码保存文本文件(假设该字符在其中),要么switch your console保存为ANSI编码。

答案 1 :(得分:2)

像这样的东西

@echo off
SETLOCAL EnableDelayedExpansion
chcp 1252
set "name=Projekt û X.txt"
chcp 850
type "!name!"

重要的是 chcp 1252 ,chcp 850只能切换回我的默认代码页,但不是必需的。