SSIS - ANSI 平面文件始终保存为 UTF-8 (w/o BOM)
SSIS - ANSI flatfile always saved as UTF-8 (w/o BOM)
我遇到了一个 SSIS 问题,客户希望(以前交付的 UTF-8 文件)以 ANSI-1252 格式交付。我认为没什么大不了的。更改文件连接管理器并完成...不幸的是,事情并没有那么简单。被困在这个问题上一天了,不知道接下来要尝试什么。
包裹本身
IN - 带有查询的 OLE DB 源。源数据库字段是 NVARCHAR。
接下来我创建了一个数据转换块,我使用 1252 代码页将传入的 DT_WSTR 转换为 DT_STR。
之后是出站文件连接目的地。平面文件连接使用代码页 1252 以制表符分隔。我已将转换后的列映射到此平面文件中使用的列。以下是连接管理器和目标块的一些屏幕截图
现在,当我从资源管理器创建一个新的 txt 文件时,它将是 ANSI(由 Notepad++ 检测到)
包运行时文件变为UTF-8 w/o BOM
我已经按照 SSIS - Flat file always ANSI never UTF-8 encoded
中的建议尝试使用复选框进行覆盖
从头开始构建项目并试验数据转换。
有人对我在这里缺少的东西有什么建议吗?奇怪的是我们有一个不同的包,其中包含之前构建的完全相同的块,它确实输出了一个 ANSI 文件(从上到下检查了包)。然而,我们在不同的机器上得到了不同的结果。有些机器会提供一个 ANSI 文件而不是 UTF-8 文件。
这已经解决了吗?我的想法是删除整个数据流任务并重新创建它。我想元数据在每次执行时都会卡住并被覆盖。
我相信您无需更改 ssis 包中的任何内容,只需检查您的编辑器设置 (notepad++)。转到设置-->首选项-->新文档设置
您需要取消选中 'Apply to opened ANSI files' 复选框。
请检查并告诉我它是否适合您。
我遇到了一个 SSIS 问题,客户希望(以前交付的 UTF-8 文件)以 ANSI-1252 格式交付。我认为没什么大不了的。更改文件连接管理器并完成...不幸的是,事情并没有那么简单。被困在这个问题上一天了,不知道接下来要尝试什么。
包裹本身
IN - 带有查询的 OLE DB 源。源数据库字段是 NVARCHAR。
接下来我创建了一个数据转换块,我使用 1252 代码页将传入的 DT_WSTR 转换为 DT_STR。
之后是出站文件连接目的地。平面文件连接使用代码页 1252 以制表符分隔。我已将转换后的列映射到此平面文件中使用的列。以下是连接管理器和目标块的一些屏幕截图
现在,当我从资源管理器创建一个新的 txt 文件时,它将是 ANSI(由 Notepad++ 检测到)
包运行时文件变为UTF-8 w/o BOM
我已经按照 SSIS - Flat file always ANSI never UTF-8 encoded
中的建议尝试使用复选框进行覆盖从头开始构建项目并试验数据转换。
有人对我在这里缺少的东西有什么建议吗?奇怪的是我们有一个不同的包,其中包含之前构建的完全相同的块,它确实输出了一个 ANSI 文件(从上到下检查了包)。然而,我们在不同的机器上得到了不同的结果。有些机器会提供一个 ANSI 文件而不是 UTF-8 文件。
这已经解决了吗?我的想法是删除整个数据流任务并重新创建它。我想元数据在每次执行时都会卡住并被覆盖。
我相信您无需更改 ssis 包中的任何内容,只需检查您的编辑器设置 (notepad++)。转到设置-->首选项-->新文档设置 您需要取消选中 'Apply to opened ANSI files' 复选框。 请检查并告诉我它是否适合您。