我正在尝试读取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;
}
}
运行没有错误,但没有写出文件。