Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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
Sql server SSIS-ANSI平面文件始终保存为UTF-8(不带BOM)_Sql Server_Utf 8_Ssis_Character Encoding_Flat File - Fatal编程技术网

Sql server SSIS-ANSI平面文件始终保存为UTF-8(不带BOM)

Sql server SSIS-ANSI平面文件始终保存为UTF-8(不带BOM),sql-server,utf-8,ssis,character-encoding,flat-file,Sql Server,Utf 8,Ssis,Character Encoding,Flat File,我面临SSIS的一个问题,客户希望以ANSI-1252交付(以前以UTF-8交付的文件)。我想没什么大不了的。更改文件连接管理器并完成。。。不幸的是,事情并没有那么简单。这件事耽搁了一天,不知下一步该怎么办 包裹本身 带查询的IN-OLE DB源。源数据库字段为NVARCHAR 接下来,我创建了一个数据转换块,其中我使用1252代码页将传入的DT_WSTR转换为DT_STR 之后是出站文件连接目标。平面文件连接使用代码页1252以制表符分隔。我已将转换后的列映射到此平面文件中使用的列。下

我面临SSIS的一个问题,客户希望以ANSI-1252交付(以前以UTF-8交付的文件)。我想没什么大不了的。更改文件连接管理器并完成。。。不幸的是,事情并没有那么简单。这件事耽搁了一天,不知下一步该怎么办

包裹本身

带查询的IN-OLE DB源。源数据库字段为NVARCHAR

接下来,我创建了一个数据转换块,其中我使用1252代码页将传入的DT_WSTR转换为DT_STR

之后是出站文件连接目标。平面文件连接使用代码页1252以制表符分隔。我已将转换后的列映射到此平面文件中使用的列。下面是连接管理器和目标块的一些屏幕截图

现在,当我从资源管理器中创建一个新的txt文件时,它将是ANSI(由Notepad++检测)

当包运行时,该文件将成为UTF-8,不带BOM

我尝试过使用中建议的覆盖复选框

从头开始构建项目,并尝试数据转换


有人对我在这里遗漏的东西有什么建议吗?奇怪的是,我们有一个不同的包,与之前构建的块完全相同,它确实输出一个ANSI文件(从上到下检查包)。然而,我们在不同的机器上得到了不同的结果。有些机器会提供一个ANSI文件,而不是UTF-8文件。

这个问题已经解决了吗?我的想法是删除整个数据流任务并重新创建它。我认为元数据在每次执行时都会被卡住和覆盖

我相信您不需要更改ssis包中的任何内容,只需检查编辑器设置(notepad++)。转到设置-->首选项-->新文档设置 您需要取消选中“应用于打开的ANSI文件”复选框。
请检查并让我知道它是否适用于您。

是否可能该文件已经存在,并且正在使用现有编码而不是重新创建该文件?除此之外,你的屏幕截图看起来就像我知道要检查的所有内容……试试这个,将结果导出到原始文件目标。在第二个数据流中,仅导入ANSI-1252中的中的列(来自原始文件源)并保存平面文件。我假设管道中的utf-8元数据可能正在生成您的文件。我尝试了几个选项:创建ANSI文件并让SSIS追加,创建ANSI文件并让SSIS覆盖。删除目标文件并让SSI自己创建它。还有@SQL.injection:还有比这更简单的方法吗?这似乎是一个合法的选择,但感觉不对。奇怪的是,当我在notepad++中将UTF-8文件转换为ANSI文件并在重新打开时保存时,文件又回到了UTF-8@Tsteenbakkers我唯一能想到的就是管道中的metatada。通过使用单独的数据流,您将确保管道上没有UTF-8。嗨,安基塔,感谢您的贡献。我已经从头开始重新创建了完整的包,但这没有给出解决方案。。。然而。。。。不过,在notepad++中编辑首选项的建议确实改变了“问题”。显然,“新文档”功能也适用于打开的文档。案件结案!