1

我已经阅读过类似的帖子,但他们没有回答我的问题。

我发现的类似帖子是: 如何通过文件将参数传递给 tortoiseproc.exe?


但问题尚未解决,并停留在创建没有 BOM 的 UTF-16 编码的文件上。

我正在尝试使用 tortoisesvn 命令为我的项目自动提交

TortoiseProc.exe /command:commit /pathfile:"D:\p3.tmp" /logmsg:"test log message" /deletepathfile

其中“D:\p3.tmp”文件包含必须提交的文件列表。

这个文件应该是 UTF-16 编码,没有 BOM。

我用来创建文件的 C# 代码:

string line = @"D:\SourceCode\ProductProvider.cs";           
    using (var s = File.Create("D:\\p3.tmp"))
    {
     using (var sw = new StreamWriter(s, new UTF32Encoding()))
     {
         sw.WriteLine(line);
     }
    }
4

1 回答 1

6

您需要使用UnicodeEncoding 类的非默认构造函数来创建没有 BOM 的 UTF16 编码;

using (var sw = new StreamWriter(s, new UnicodeEncoding(false, false)))
{
    sw.WriteLine(line);
}

第一个false设置 little endian 编码,您可以将其设置为 true 用于 big endian。第二个false禁用 BOM。

于 2013-06-26T17:49:26.577 回答