私の理解では、Java はデフォルトで UTF-16 を使用し (String
およびchar
おそらく他のタイプに対して)、UTF-16 は地球上のほとんどの文字エンコーディングの主要なスーパーセットです (ただし、私は間違っている可能性があります)。しかし、UTF-16 がサポートしていないエンコーディングで生成されたファイルを読み取るときに、アプリを保護する方法が必要です (多くの場合、またはまったくない場合はわかりません)。
だから私は尋ねます:
- ファイルを読み取る前にファイルが UTF-16 であると想定しても安全ですか、それとも NPE やその他の不正な入力例外が発生しない可能性を最大限に高めるために、JUniversalCharDet、JCharDet、ICU4J などの文字エンコーディング検出器を使用して最初にファイルを検出する必要がありますか?エンコーディング?
OutputStream
次に、ファイルに書き込むときに、文字列またはファイルに書き込むときにガベージ テキスト/文字を生成するメモリ内オブジェクト (文字列、 など) に文字/バイトが作成されていないことを確認する必要があります。 . 理想的には、このガベージを生成する文字が、書き込んでいるファイルに作成する前に、何らかの方法で確実にキャッチされるようにしたいと考えています。これを防ぐにはどうすればよいですか?
前もって感謝します。