それは、文字セットの多くのために賢明です。 Unicodeに収まらないものはまだいくつかありますが、多くはありません。
最初に、変換する必要のある文字を処理するために、バイトが文字ではないことを覚えておいてください。通常、最も簡単な方法は、バイトストリームを適切なもので構成されたリーダー(またはライター)エンコード/デコードセット。直接サポートされているエンコーディングのリストについては
、here's what comes with the JVM。
キーは、プラットフォームのエンコーディングを使用するため、デフォルトのリーダとライターを使用しません。代わりに1つのエンコードを選択します。 UTF-8はディスクサイズが良好で、エンコード/デコードのパフォーマンスが劣ります。 UTF-32はディスクサイズには恐ろしいもので、エンコード/デコードのパフォーマンスが優れています。 UTF-16は妥協の一種です。すべてのUTFベースのエンコーディングは、ASCII文字をより効率的に処理するために最適化されているため、ASCIIのみを扱う場合はUTF-8がUTF-16を上回る可能性があります。
バイトを新しい文字セットに変換できないことに注意してください。新しい文字セットに「キャスト」されます。つまり、バイトを新しい文字セットに変換する場合は、それらを文字列または文字に変換し、新しい文字セットの文字列のバイトを取得する必要があります。独自の指定された文字セットをInputStreamとしてバイトストリームを読み込むための
一つの方法は、InputStreamReader constructed with an alternate character setを使用することです。同様に、代替文字セットで構築されたOutputStreamWriterを使用する必要があります。
あなたが直接管理しないすべてのファイルは、プラットフォームの文字セットを使用する必要があります(これはおそらくそれらのものです)ので、保存またはプログラムへの入力時に選択した文字セットに変換する必要があります。
「英語で分かりやすい」とは、具体的にはどういう意味ですか?英語で分かりやすいかどうかは、エンコーディングとは関係ありません。あるエンコーディングから別のエンコーディングに変換するだけであれば、Hermsの答えは正しいです。 –
私は知っている、それはエンコーディングとは無関係です。私は、あるエンコーディングから別のエンコーディングに変換する以上のことをしたい。私はロケールを与えられた別のエンコーディングに変換したいと思います。結果が得意です(ロケールが英語を表している場合は英語の辞書で参照できます) – stevebot