我正在使用Camel Bindy处理我从第三方公司收到的csv文件。
在他们的csv中,他们使用了扩展ascii表中的分隔符:"\u00a4“(十进制代码164 )。
我试着这样设置bindy:
@CsvRecord(separator = "\u00a4")但是它无法分隔列。
当我将csv分隔符更改为更标准的内容时,如";“,一切工作正常。由于此csv是从外部公司发送的,因此我无法自行更改它。
有没有办法设置Bindy来支持它?
@CsvRecord(separator = "§")
public class Employee {
@DataField(pos = 1)
private String employeeId;
@DataField(pos = 2, pattern = "dd/MM/yyyy")
private Date startDate;
@DataField(pos = 3, pattern = "dd/MM/yyyy")
private Date endDate;
@DataField(pos = 4)
private Character code;
// Getters and Setters}
CSV内容:"aC1aoC3"§"12/04/2017"§"12/04/2017"§"A“”aC1aoC3“§”13/04/2017“§”A“"aC1aoC3"§"14/04/2017"§"14/04/2017"§"A”"aC1aoC3"§"15/04/2017"§"15/04/2017"§"A“"aC1aoC3"§"16/04/2017"§"16/04/2017"§"U“"aC1aoC3"§"17/04/2017"§"17/04/2017"§"U”"aC1aoC3"§"18/04/2017"§"18/04/2017"§"U“
非常感谢您的帮助
吉尔斯
发布于 2017-04-17 17:26:41
发布于 2017-04-17 23:05:09
十进制的section sign (§)是167,而不是164。
将分隔符更改为\u00A7,如下所示:
@CsvRecord(separator = "\u00A7")
public class Employee { ... }发布于 2017-04-18 02:08:31
明白了。这是一个编码问题。字符无法读取,已替换为65533 (unicode)替换字符。
我通过设置读取csv文件的ftp连接的charset=ISO-8859-1解决了这个问题。
https://stackoverflow.com/questions/43447746
复制相似问题