bindy csv编码与本地不同

时间:2014-06-17 14:19:24

标签: apache-camel bindy

在哪里可以定义输入文件的编码才能被Bindy正确读取? 我的输入文件是ISO-8859-1,CRLF 我的本地是UTF-8(我不要改变它......)

所以当我读到我的文件时,某些字符是错误的......

驼:

.process(debugProcessor)
        .unmarshal().bindy(BindyType.Csv, "mypackage.com")

Bindy:

@CsvRecord(separator = "\u0009", skipFirstLine = true)
public class elModel extends elModelGeneric{

/** Général */

@DataField(pos = 1)
/* N° id. */ String id;
...

2 个答案:

答案 0 :(得分:0)

读取源时设置编码。如果您的源是文件,则定义如下:

from("file:inbox?charset=ISO-8859-1")
    .process(debugProcessor)
    .unmarshal().bindy(BindyType.Csv, "mypackage.com")
    ...

答案 1 :(得分:0)

感谢这项工作正确读取文件。 我实际上和Bindy有些麻烦: 这作为测试样本不起作用:

from("file:inbox?charset=ISO-8859-1")
.process(debugProcessor)
.unmarshal().bindy(BindyType.Csv, "mypackage.com")
.marshal().bindy(BindyType.Csv, "mypackage.com")
.to("file:output/test.csv?charset=UTF-8");

输出编码错误(它包含“é”输入字符的一些“?”字符) 它可能与Bindy设置所需的Locale有关吗? 我做了几次测试,但无法得到正确的输出。