Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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# SSI使用C将.raw或.txt文件从ANSI编码为UTF-8,而不使用BOM#_C#_Utf 8_Ssis - Fatal编程技术网

C# SSI使用C将.raw或.txt文件从ANSI编码为UTF-8,而不使用BOM#

C# SSI使用C将.raw或.txt文件从ANSI编码为UTF-8,而不使用BOM#,c#,utf-8,ssis,C#,Utf 8,Ssis,我正在开发一个相当简单的SSIS包,它使用ODBC源代码从DB2读取数据,并将其带到平面文件目标。但是我需要生成的这个文件是UTF-8(没有BOM),而不是ANSI,因为它是由SSIS自动生成的。最适合我的是下面的代码,但它将其转换为UTF-8 BOM,客户告诉我带有BOM的文件不适合他。有没有办法把文件改成UTF-8 string srcFilename = Dts.Variables["User::FFDestPath"].Value.ToString(); string

我正在开发一个相当简单的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);
编辑:

对于在SSI中本机写入,请在平面文件连接管理器中指定代码页为65001(UTF-8)

平面文件目标写入文件时,不会写入BOM表


您似乎没有使用
utf8WithoutBom
来实际创建文件?@stuartd Hi,这一行用于不使用BOM。好的,但是您编写了文件,然后创建
utf8WithoutBom
,但您没有使用它?你期望它做什么?我对C#比较陌生,还在学习。您建议我如何改进该代码以实现我所需的功能?关于
File.WriteAllText(srcFilename,text,utf8,不带BOM)
?谢谢您的帮助。当我在记事本++中打开文件时,我的FF目的地看起来和那个完全一样,它是ANSI.Crazy-你能发布它的屏幕截图,这样我就可以尝试复制吗?“常规”选项卡+高级中的至少一列?哦,请确保平面文件目标指定覆盖,否则,如果构建了其他目标,则永远不会清除BOM表。