Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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

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
C# 来自包含UTF-8字符的批处理文件的命令行参数会导致问题_C#_Batch File_Utf 8 - Fatal编程技术网

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

C# 来自包含UTF-8字符的批处理文件的命令行参数会导致问题,c#,batch-file,utf-8,C#,Batch File,Utf 8,我编写了一个将路径作为命令行参数的小实用程序,但如果(并且仅当)该参数是从批处理文件传递的,并且包含诸如Umlauts之类的UTF-8字符(不幸的是,当系统语言为德语时,这一点相当常见),我就会遇到麻烦 我可以通过项目调试属性传递带有Umlaut的文件名,没有问题。 我可以从命令行用Umlaut传递文件名,没问题。 我用Umlaut从批处理文件mayhem传递了一个文件名 显然,我已经尝试过保存UTF-8编码的批处理文件。。。但是那该死的东西不会执行任何命令 实际程序是用C#编写的。 要在批处理

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

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

显然,我已经尝试过保存UTF-8编码的批处理文件。。。但是那该死的东西不会执行任何命令

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

使用
CHCP 1252
作为批处理的第一行,它将与路径一起工作

编辑:刚刚测试过。它会起作用的。参数在无法获得正确输出(通过echo)的情况下工作

无论如何,如果您尝试呼出类似“öäü”的内容,它将无法正确显示


要完全避免这种情况,请为自己准备一个编辑器,它能够以ASCII编码保存文件(据我所知,记事本++无法)。

您可以使用适用于UTF 8的PowerShell脚本。批处理程序仅支持ASCII文件。

能否请您提供一个具体的问题示例?这正是我所希望的解决方案,而且它工作顺利!谢谢