【发布时间】:2020-09-24 20:15:07
【问题描述】:
我正在开发一个相当简单的 SSIS 包,它使用 ODBC 源从 DB2 读取数据并将其带到平面文件目标。但我需要这个生成为 UTF-8(没有 BOM)而不是 ANSI 的文件,因为它是由 SSIS 自动生成的。最适合我的是下面的代码,但它将其转换为 UTF-8 BOM,并且客户端告诉我带有 BOM 的文件对他不起作用。有什么办法可以让文件变成UTF-8?
string srcFilename = Dts.Variables["User::FFDestPath"].Value.ToString();
string text = File.ReadAllText(srcFilename);
File.WriteAllText(srcFilename, text, System.Text.Encoding.UTF8);
Encoding utf8WithoutBom = new UTF8Encoding(false);
【问题讨论】:
-
您似乎并没有使用
utf8WithoutBom来实际创建文件? -
@stuartd 嗨,该行是不使用 BOM 的。
-
好的,但是你写文件,然后你创建
utf8WithoutBom但你不使用它?你希望它做什么? -
我对 C# 比较陌生,还在学习。您建议我应该改进该代码以实现我的需要吗?
-
File.WriteAllText(srcFilename, text, utf8WithoutBom)怎么样?