私がする必要があるのは、.csvファイルを読み込んでデータをデータベースにプッシュすることだけです。私が直面している問題は、ファイルがCSV形式に従わないかもしれないということです。例えば、 "" "(2つの二重引用符で囲まれた単一の二重引用符)の場合、apache camelはその1つのレコードの代わりにファイル全体を破棄します。この問題を解決するために、私はファイルを分割し、行ごとに非整列化することにしました。このアプローチを使用すると、今はボディをトークン化した後にユニコード文字が保存されないという別の問題に直面しています。 。。ここではルートの私のコードスニペットです:.splitはアンマーシャリング(データ形式)(。トークン化( "\ r \ nの")体())(ファイル)から分割してUnicode文字でApacheのcamelファイルを解析する問題
ストリーミング().END()
私は体を修正することがユニコードのキャラクターを壊しているという私の理論を検証するためにいくつかのことを試みました。私はから 1)を試みた時に(ファイル).TO(ファイル) - > Unicode文字は()ストリーミング.split(身体()))ファイル(から) 2を保持されます(ファイル)へ - 。> Unicode文字は を保存しましたストリーミング() - >ユニコード文字が失われました 4)from(file).split(body(String.clasS) ))。)ストリーミング()。(ファイル) - > Unicode文字が失われました。
私も自分のJVMは、エンコーディングにUTF-8を使用していることを確認したと私はまた、UTF-8へのファイルコンポーネントにcharsetパラメータを設定しようとしましたが、何も変わっていません。
誰かがこの問題を解決するのに役立つことができますか?
ユニコード文字§が反転されていますか?
私を次のように私のルートを変更:(ファイル)から.setProperty(Exchange.CHARSET_NAME、定数( "UTF-8"))convertBodyTo(String.class).split(身体()トークン化( "\ rを。 \ n "))。streaming()。process()。endそしてunicode文字はまだ壊れています – Pri
その理由は、あなたのファイルがUTF-8でエンコードされていない可能性が高いからです。 iso-8859-1のような他のエンコーディングを試してみませんか?また、それをデバッグして、エクスチェンジエンコーディングを変更したときのボディの外観を確認してください。 –
「Zu¤iga」は、IS0-8859-1、「Zu iga」を使用しているときにUTF-8を使用するときに表示されます。 – Pri