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

时间:2015-08-03 08:24:42

标签: c# batch-file utf-8

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

我可以从项目调试属性传递Umlaut的文件名,没问题。 我可以从命令行传递文件名和Umlaut,没问题。 我从批处理文件中传递了一个带有Umlaut的文件名,混乱。

显然,我已经尝试将批处理文件保存为UTF-8编码...但是这个darn的东西不会执行任何命令。

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

2 个答案:

答案 0 :(得分:3)

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

编辑刚刚测试过。它会工作。

表示参数正在输出正确的输出(通过回声)

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

要完全解决这个问题,请找一个能够以ASCII编码方式保存文件的编辑器(根据我的知识,notepad ++)。

答案 1 :(得分:0)

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