(免責事項: 質問する前に、ここでいくつかの投稿を調べました。これは特に役に立ちました。可能であれば、皆さんからのちょっとした健全性チェックを探していました)
こんにちは、みんな、
データベースにロードするデータファイルを処理するために構築した内部 Java 製品 (別名 ETL ツール) があります。XSLT 変換用の事前ロールされたステージがあり、元のファイル内でパターンの置換などを行います。入力ファイルは任意の形式にすることができ、フラット データ ファイルまたは XML データ ファイルにすることができます。ロードされる特定のデータ フィードに必要なステージを構成します。
私はこれまで、ファイルのエンコーディングの問題を無視してきました (私が知っている間違いです)。ただし、ファイル エンコーディングの問題に直面しています。簡単に言うと、ステージを一緒に構成する方法の性質上、入力ファイルのファイル エンコーディングを検出し、Java Reader オブジェクトを作成する必要があります。適切な引数。完全に理解しているとは言えないことに飛び込む前に、皆さんと簡単な健全性チェックを行いたかっただけです。
- ツールキット内のすべてのステージから出力されるすべてのファイルに、UTF-16 の標準ファイル エンコーディングを採用します (将来的に 2 バイト文字を読み込む可能性を除外するつもりはありません)。
- JUniversalChardetまたはjchardetを使用して、入力ファイルのエンコーディングをスニッフィングします
- Apache Commons IO ライブラリを使用して、すべての段階で標準のリーダーとライターを作成します (これには同様のエンコーディング スニッフィング API がないと考えてよろしいですか?)
私の概説したアプローチで何か落とし穴が見えますか、または提供できる特別な知恵はありますか?
Java ランタイムに windows-1252 のエンコーディングを決定させるという既存のアプローチを使用してロードされたデータとの下位互換性を確信できる方法はありますか?
前もって感謝します、
-ジェームズ