Webページを文字コードを変えずに取得して,コード判定 & コード変換

コード判定には
juniversalchardet : Java port of universalchardet
を用いる.ここから juniversalchardet-1.0.3.jar を落としてきて,適当なディレクトリに保存.

文字コード(encoding)を判定できたら,byte[] 型に入れたデータと合わせて,String へ変換.最後のタイミングで,文字列が UTF-8 になってくれる.

byte[] content;

UniversalDetector detector = new UniversalDetector(null);
detector.handleData(content, 0, contentLength);
detector.dataEnd();
encoding = detector.getDetectedCharset();
detector.reset();

String outContent = new String(content, Charset.forName(encoding));  //Java6からサポート