我正在从UniVerse中的文件读取数据,并且某些记录包含导致换行的特殊字符。有没有办法去掉这些?有些是ASCII 255,但也有一些其他的。我对UniVerse很陌生。我使用C#和U2 Toolkit for .NET。这里是我的代码:包含特殊字符倾斜输出的UniVerse记录
U2Connection con = GetConnection();
UniSession us1 = con.UniSession;
UniSelectList s1 = us1.CreateUniSelectList(0);
UniFile f1 = us1.CreateUniFile("CM");
s1.Select(f1);
bool lLastRecord = s1.LastRecordRead;
List<string> lRecIdList = new List<string>();
while (!lLastRecord)
{
string sRecID = s1.Next();
if (!lRecIdList.Contains(sRecID))
{
lRecIdList.Add(sRecID);
}
lLastRecord = s1.LastRecordRead;
}
UniDataSet uSet = f1.ReadRecords(lRecIdList.ToArray());
int count = 1;
foreach (UniRecord item in uSet)
{
try
{
Console.WriteLine(count + " - " + item.RecordID + " - " + item.Record);
count++;
}
catch (Exception ex)
{
Console.WriteLine(ex);
count++;
}
}
con.Close();
凭借良好的数据,输出看起来是这样的:
1 - 01*1234 - field1þfield2þfield3þfield4þfield5
2 - 01*5678 - field1þfield2þfield3þfield4þfield5
但是,如果有在数据这些特殊字符,比如在第一个记录的字段3,它看起来像这样:
1 - 01*1234 - field1þfield2þfield3
2 - 01*5678 - field4þfield5
...然后第三个创纪录的ID将包含第二个记录的数据。
任何帮助,将不胜感激!
目前我通过让某人直接进入并编辑数据来解决此问题,但有90,000条记录,每500条记录收到一条错误。
在数据流中存在字符255是非常不寻常的,除非数据已用UTF8编码。您是否查看过UniVerse控制台屏幕(TCL)中的数据? –
从DBA告诉我,一些数据是从另一个来源导入的,并且该来源包含这些特殊字符。所以,垃圾进入垃圾场..数据在控制台级别看起来很好(使用Accuterm)。 –
特殊字符不会显示在实际应用程序中,但DBA可以使用他拥有的任何工具查看它们。 –