bindy csv кодировка отличается от локальной
Где я могу определить кодировку моего входного файла, чтобы Bindy правильно его читала? Мой входной файл ISO-8859-1, CRLF Мой локальный UTF-8 (я не хочу его менять...)
Поэтому, когда я читаю мой файл, некоторые персонажи ошибаются...
верблюд:
.process(debugProcessor)
.unmarshal().bindy(BindyType.Csv, "mypackage.com")
Бинди:
@CsvRecord(separator = "\u0009", skipFirstLine = true)
public class elModel extends elModelGeneric{
/** Général */
@DataField(pos = 1)
/* N° id. */ String id;
...
2 ответа
Решение
Установите кодировку при чтении вашего источника. Если вашим источником является файл, это определяется следующим образом:
from("file:inbox?charset=ISO-8859-1")
.process(debugProcessor)
.unmarshal().bindy(BindyType.Csv, "mypackage.com")
...
Благодаря этой работе отлично читать файл правильно. На самом деле у меня возникли проблемы с Бинди: этот тестовый образец не работает:
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? Я сделал несколько тестов, но не смог получить правильный вывод.