我正在尝试使用SSIS脚本读取UTF-8衣衫right的正确文件

时间:2019-03-28 13:34:57

标签: c# sql-server ssis etl ssis-2016

我正在尝试读取UTF-8 Ragged Right文件,将代码页转换为SSIS 2016可以使用固定宽度列处理的内容。该代码可以正常运行,但不会踢出修改后的文件,以供以后的平面文件源使用。

我尝试使用数据转换,但是它会推送一些UTF-8字符,因此10字符变成11字符。在Internet上搜索时,我发现的代码一定是SSIS 2008的代码,因为它在“ Dts”之类的内容上产生了许多错误。我当前的代码不会产生任何错误,但是也不会写出文件。

我在脚本转换编辑器的自定义属性中有两个变量。我正在编写的UTF-8文件为“ FileLoc”,而ASCII文件为“ FileWrite”。

region Namespaces
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Pipeline.Wrapper;
using Microsoft.SqlServer.Dts.Runtime.Wrapper;
using System.Windows.Forms;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using Microsoft.SqlServer.Server;
using Microsoft.SqlServer.Dts.Runtime;
using System.Text;
#endregion

public class ScriptMain : UserComponent
{
    public void main ()
    {
        string fileIn = Variables.FileLoc;
        string fileOut = Variables.FileWrite;

        var x = System.IO.File.ReadAllText(fileIn);

        byte[] encodedBytes = System.Text.Encoding.UTF8.GetBytes(x);

        byte[] unicodeBytes = Encoding.Convert(Encoding.UTF8,  encoding.ASCII, encodedBytes);

        System.IO.File.WriteAllBytes(fileOut, unicodeBytes);
        Output0Buffer.Col = Variables.FileWrite;
    }

}

运行没有错误,但没有写出文件。

0 个答案:

没有答案