1

Cp1250文字セットを使用してファイルを作成しようとしています:

out = new BufferedWriter(
        new OutputStreamWriter(
        new FileOutputStream("/path/filename"), Charset.forName("Cp1250")));

ただし、juniversalchardetで実際の文字セットを検出すると、 Cp1252であるWINDOWS-1252と表示されます( javadocによると)。

Enca( enca -L czech -g filename) はISO-8859-2を検出します。

Cp1250を正確に設定するにはどうすればよいですか(または、 java.nio API 名を使用してwindows-1250 )?

ありがとうございました

カレル

4

1 に答える 1

3

エンコーディング検出プログラムは、基本的にすべてのファイルに有効なエンコーディング(たとえば、常に 1 文字あたり 1 バイトで、すべてのバイトに文字がマップされているもの) に関してのみヒューリスティックにできます。

Windows-1250Windows-1252の間で異なる結果を引き起こすことがわかっているテキストをエンコードし、コードが実際に何をするかを確認する必要があります。実際に正しいことをしていることがわかると思います。

于 2012-11-15T10:37:57.850 に答える