Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
Csv SSIS中的特殊字符_Csv_Ssis - Fatal编程技术网

Csv SSIS中的特殊字符

Csv SSIS中的特殊字符,csv,ssis,Csv,Ssis,我正在用特殊字符将CSV文件加载到SSIS中,我需要在数据库中写入相同的特殊字符。但是现在,例如, “Alfred Kärcher GmbH&Co.KG”已更改为“Alfred KÃrcher GmbH&Co.KG”。其写入数据库的方式不正确。是否有方法停止SSIS中的字符转换? 我怎样才能解决这个问题?我没有任何平面文件连接。我尝试了很多方法,但都没有成功 谢谢显然,csv源文件中的信息采用UTF-8编码,其中“ä”字符编码为两个字节:C3 A4,但在加载过程中,它被解释为ANSI编码,从而

我正在用特殊字符将CSV文件加载到SSIS中,我需要在数据库中写入相同的特殊字符。但是现在,例如, “Alfred Kärcher GmbH&Co.KG”已更改为“Alfred KÃrcher GmbH&Co.KG”。其写入数据库的方式不正确。是否有方法停止SSIS中的字符转换? 我怎样才能解决这个问题?我没有任何平面文件连接。我尝试了很多方法,但都没有成功


谢谢

显然,csv源文件中的信息采用UTF-8编码,其中“ä”字符编码为两个字节:C3 A4,但在加载过程中,它被解释为ANSI编码,从而将字节作为单独的字符:“Ô和“·”。 根据目标表使用的是varchar还是nvarchar数据类型,有两种类似的方法来解决此问题。 因为它被转换为ANSI拉丁1编码CP1252,所以我假设您使用的是数据类型varchar。 基本上,您需要使用代码页65001(UTF-8)读取文件,然后使用派生列转换,使用强制转换表达式为csv文件中的每个文本字段添加派生列,例如(DT_STR,501252)LastName。 在文件中为非整数列添加其他派生列,以避免错误“无法处理该列,因为为其指定了多个代码页(65001和1252)。”。。 在目标列上,确保目标列映射到派生列而不是原始列


如果目标表具有nvarchar类型,请使用数据转换而不是派生列转换,并选择数据类型Unicode string[DT_WSTR]。

CSV文件的数据流中有什么数据源,如果您没有任何平面文件连接?我有OLEDB source,请添加一个示例,说明您的源查询如何查找CSV文件importI已添加快照。谢谢您确定目标表的代码正确吗?我会在初始读取后插入一个数据查看器,以确保这就是我的问题所在。