C# 来自包含UTF-8字符的批处理文件的命令行参数会导致问题
我编写了一个将路径作为命令行参数的小实用程序,但如果(并且仅当)该参数是从批处理文件传递的,并且包含诸如Umlauts之类的UTF-8字符(不幸的是,当系统语言为德语时,这一点相当常见),我就会遇到麻烦 我可以通过项目调试属性传递带有Umlaut的文件名,没有问题。 我可以从命令行用Umlaut传递文件名,没问题。 我用Umlaut从批处理文件mayhem传递了一个文件名 显然,我已经尝试过保存UTF-8编码的批处理文件。。。但是那该死的东西不会执行任何命令 实际程序是用C#编写的。C# 来自包含UTF-8字符的批处理文件的命令行参数会导致问题,c#,batch-file,utf-8,C#,Batch File,Utf 8,我编写了一个将路径作为命令行参数的小实用程序,但如果(并且仅当)该参数是从批处理文件传递的,并且包含诸如Umlauts之类的UTF-8字符(不幸的是,当系统语言为德语时,这一点相当常见),我就会遇到麻烦 我可以通过项目调试属性传递带有Umlaut的文件名,没有问题。 我可以从命令行用Umlaut传递文件名,没问题。 我用Umlaut从批处理文件mayhem传递了一个文件名 显然,我已经尝试过保存UTF-8编码的批处理文件。。。但是那该死的东西不会执行任何命令 实际程序是用C#编写的。 要在批处理
要在批处理文件或代码端正确处理这些参数,我必须使用哪些选项?使用
CHCP 1252
作为批处理的第一行,它将与路径一起工作
编辑:刚刚测试过。它会起作用的。参数在无法获得正确输出(通过echo)的情况下工作
无论如何,如果您尝试呼出类似“öäü”的内容,它将无法正确显示
要完全避免这种情况,请为自己准备一个编辑器,它能够以ASCII编码保存文件(据我所知,记事本++无法)。您可以使用适用于UTF 8的PowerShell脚本。批处理程序仅支持ASCII文件。能否请您提供一个具体的问题示例?这正是我所希望的解决方案,而且它工作顺利!谢谢