我有一个名为“→Ψjohn.txt”的文件,现在我想从文件名中删除这些特殊字符,并将文件名更新为“john.txt”。但是talend将这些字符识别为粗垂直线,因此它无法识别物理位置中的源文件。任何人都可以建议一个解决方案。
我在数据库和物理位置都有这个文件,当我从数据库中读取文件时,它必须删除特殊字符并在数据库中更新相同的物理位置。
在数据库中,文件看起来像这样 database
当我使用talend从数据库中读取时,它看起来像是跟随 talend 提前致谢
答案 0 :(得分:0)
您不必指定确切的文件名,您可以使用tFilelist
并获取特定目录中的所有文件,您也可以使用正则表达式来屏蔽某些名称,例如遍历所有*john.txt
。
获得实际文件名后,使用正则表达式删除不需要的字符,例如:\W
表示非单词字符,并通过系统命令或使用tFileCopy
重命名该文件。
答案 1 :(得分:0)
看到图片后,这不是Talend问题,而是与Talend(Eclipse)控制台中使用的字体和Java的enconding设置有关。
这些矩形(更大的字体大小可见)显示字体不能代表你的字符 - 它没有符号。
Talend(Eclipse)设置
在Talend中,导航至Window / Preferences
并选择General / Appearance / Colors and Fonts
(如Eclipse help中所述)。检查您使用的Debug / Console font
字体。我使用字体Consolas
得到了很好的结果,该字体是从Talend版本6开始设置的。事先是Courier New
。
Java编码
您应该检查Java是否使用UTF-8编码来显示字符。 Console Enconding
必须设置为UTF-8。有关如何执行此操作的说明,请参阅this answer。
<强>替代强>
或者,您可以将所有日志数据存储到一个文件中,然后在例如Notepad ++查看输出是否正确生成并且只显示错误。