2013-01-09 165 views
1

我有一个CSV文件,它有我想用Talend解析的不常见的分隔符。通常,当我们使用“回车”字符作为rowdelimiter的CSV时,我使用“\ n”。当它是一个TAB分隔文件时,我使用“\ t”等等。但现在我有一个文件有一些不寻常的字符。维基百科教我说它是所谓的“控制角色”。我的问题是如何在Talend中的tFileDelimitedInput组件中提到这些字符(请参见截图2)。我不得不使用换行符(\ n),我必须使用STX控制字符,但我如何告诉Talend这是哪个字符?首先是什么符号“\ n”?在Talend中导入带有特定分隔符的CSV文件

的文件的一个例子:

https://dl.dropbox.com/u/1757832/talendSeparators1.jpg

在Talend的tFileDelimitedInput组分,我必须输入行分离器和字段分隔符的字符。

https://dl.dropbox.com/u/1757832/talendSeparators2.jpg

回答

2

您是否尝试过创建该文件的元数据tFileDelimitedInput

这样做,你有更多的选择(见附图)。

enter image description here

编辑:

这里的UTF-8相应控制字符代码清单:

SOH:标题开始:http://www.fileformat.info/info/unicode/char/0001/index.htm STX:启动文本:http://www.fileformat.info/info/unicode/char/0002/index.htm

你还试过使用这些utf-8代码吗?

EDIT 2使用的解决方案:

下面是与STX字段分隔

File content

我已经定义了一个简单的tFileInputDelimited模式具有两列的文件(key和value均为字符串)。

然后,我设置:

  1. 行分隔符为"\n"
  2. 字段分隔为new String("\u0002")

然后,我已经得到了正确的行为:

.----+------. 
| tLogRow_1 | 
|=---+-----=| 
|key |value | 
|=---+-----=| 
|key1|value1| 
|key2|value2| 
'----+------' 
+0

是的,我试过了,没有运气。 –

+0

请参阅我的编辑。 –

+0

对不起,我迟到的反应,但不幸的是我不能将这些字符添加到Talend作为“字段分隔符”或“行分隔符”。 Talend给我的错误是:无效的转义序列(有效的转义序列是\ b \ t \ n \ f \ r \“\'\\) –

相关问题