包含UTF-8字符的批处理文件中的命令行参数会导致问题

我写了一个小实用程序,它将路径作为命令行参数,但是如果(并且仅当)该参数从批处理文件传递并且包含像Umlauts这样的UTF-8字符时我遇到了麻烦(不幸的是,这种情况很常见)系统语言是德语)。

我可以从项目调试属性传递文件名和Umlaut,没问题。 我可以从命令行传递文件名和Umlaut,没问题。 我从批处理文件传递文件名与Umlaut,混乱。

显然,我已经尝试将批处理文件保存为UTF-8编码…但是这样的事情就不会执行任何命令。

实际的程序是用C#编写的。 在批处理文件或代码端,我有哪些选项可以正确处理这些参数?

使用CHCP 1252作为批次的第一行,它将与路径一起使用。

编辑:刚试过它。 它会工作。 参数正在工作,获得正确的输出(通过回声)不会。

无论如何,如果你试图回应像“öäü”这样的东西,它将无法正确显示。

为了完全绕过它,给自己一个编辑器,它能够以ASCII编码保存你的文件(notepad ++,据我所知)。

您可以将PowerShell脚本用于UTF 8.批处理器仅支持ASCII文件。