1. ホーム
  2. java

[解決済み] Java : ストリームの正しい文字エンコーディングを決定する方法

2022-04-28 12:17:34

質問

以下のスレッドを参考にしてください。 Javaアプリ:iso-8859-1エンコードされたファイルを正しく読み込めません。

入力ストリーム/ファイルの正しい文字セットエンコーディングをプログラムで決定する最良の方法は何でしょうか?

下記を使用してみました。

File in =  new File(args[0]);
InputStreamReader r = new InputStreamReader(new FileInputStream(in));
System.out.println(r.getEncoding());

しかし、ISO8859_1でエンコードされていることが分かっているファイルでは、上記のコードはASCIIを生成します。これは正しくなく、ファイルの内容をコンソールに正しくレンダリングすることができません。

解決方法は?

Javaでエンコードを検出するために、jchardetに似たこのライブラリを使っています。 https://github.com/albfernandez/juniversalchardet