Javaでストリームからテキストを読み込むコードを書くときによくある間違いは、エンコーディングの指定を忘れることです。何も指定しなければ、Javaはプラットフォームのデフォルトのエンコーディングを使用し、最終的には問題を引き起こします(「しかし、それは私のコンピュータ上で動作します!」)。デフォルトのエンコーディングを使用するコードを見つけるために使用するエンコーディングはどれですか?
これらの問題を見つけるために、できるだけ多くのI/O操作を中断する珍しいデフォルトのエンコーディングを使用したいと思います。その考え方は、少なくともASCII以外の文字はすべて切り詰められるということです。
ほとんどのドキュメントでは、UTF-8エンコーディングが使用されています。 ISO-8859-1は、単に入力を保存するだけで動作するかもしれません(バイトと文字の間の1:1マッピングです)。どんなウムラウトも2つの/ツリーバイトシーケンスで読み込まれます。しかし私はもっとうまくいくかどうか疑問に思っています。
list of supported encodingsからどのエンコードを使用することをお勧めしますか?
あなたのJVMにいくつかのものがある場合、EBCDICは楽しいです。 http://en.wikipedia.org/wiki/Extended_Binary_Coded_Decimal_Interchange_Code – Mat
私はEBCDIC(JavaでCp037)を使用していますが、このエンコーディングを使用すると、EBCDICエンコードされた文字列を使用してプロセスを作成しようとするため、Mavenをもう実行できません。 - ) –