我正面临SSIS的问题,客户希望以(在UTF-8中提供的文件)以ANSI-1252交付。我想没什么大不了的。更改文件连接管理器并完成...遗憾的是,它并非如此简单。被困在这一天并且对接下来的尝试毫无头绪。
包裹本身
IN - 带查询的OLE DB源。源数据库字段是NVARCHAR。
接下来我创建了一个数据转换块,我使用1252代码页将传入的DT_WSTR转换为DT_STR。
之后是出站文件连接目标。平面文件连接使用代码页1252以制表符分隔。我已将转换后的列映射到此平面文件中使用的列。以下是连接管理器和目标块的一些屏幕截图
现在,当我从资源管理器创建一个新的txt文件时,它将是ANSI(由Notepad ++检测到)
当包运行时,文件变为UTF-8,没有BOM
我已尝试使用SSIS - Flat file always ANSI never UTF-8 encoded
中建议的覆盖复选框进行试验从头开始构建项目并尝试数据转换。
有没有人对我在这里缺少的东西有什么建议?奇怪的是我们有一个不同的包,其前面构建的块完全相同,并且它输出一个ANSI文件(从上到下检查包)。但是,我们在不同的机器上得到了不同的结果有些机器会提供其他UTF-8文件的ANSI文件。
答案 0 :(得分:2)
这已经解决了吗?我的想法是删除整个数据流任务并重新创建它。我想每次执行都会卡住和覆盖元数据。
我相信您无需更改ssis包中的任何内容,只需检查您的编辑器设置(记事本++)。转到设置 - >偏好 - >新文件设定 您需要取消选中“应用于已打开的ANSI文件”复选框。 请检查并告诉我它是否适合您。