【问题标题】:Command line argument from batch file containing UTF-8 character causes trouble包含 UTF-8 字符的批处理文件中的命令行参数会导致问题
【发布时间】:2015-08-03 08:24:41
【问题描述】:

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

我可以从项目调试属性中传递带有变音符号的文件名,没问题。 我可以从命令行传递带有变音符号的文件名,没问题。 我从批处理文件中传递带有变音符号的文件名,混乱。

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

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

【问题讨论】:

  • 能否提供一个具体的问题示例?

标签: c# batch-file utf-8


【解决方案1】:

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

编辑:刚刚测试过。它会起作用的。参数在无法获得正确输出(通过回声)的地方起作用。

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

要完全解决这个问题,请为自己准备一个能够以 ASCII 编码保存文件的编辑器(据我所知,notepad++ 不能)。

【讨论】:

  • 正是我所希望的那种解决方案,而且运行顺利!谢谢!
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 2016-01-30
    相关资源
    最近更新 更多