JavaでWebサイトに接続する−文字コードの指定−

引き続き接続。
題材は私のホームページ -> 十字路街のパラボラです。

package com.yu_yake.file.net;
import java.io.*;
import java.net.*;
public class YuyakeAccess2 {
  public static void main(String[] args) {
URL url = null;
try{
//	URL作成
url = new URL("http://file.yu-yake.com/");
//	URLからコネクションを取得して確立
HttpURLConnection urc =
          (HttpURLConnection)url.openConnection();
urc.connect();

//	接続語、コンテンツタイプを取得する
System.out.println( "Content-Type -> "
            + urc.getContentType() + "\n");
//	文字コードを指定した読み込み
InputStreamReader isr =
        new InputStreamReader(urc.getInputStream(),"Shift-JIS");
BufferedReader br = new BufferedReader(isr);
String line;
while( ( line = br.readLine() ) != null )
System.out.println(line);

//	終了処理
isr.close();
br.close();
urc.disconnect();
}catch(MalformedURLException e){
System.err.println("MalformedURLException");
e.printStackTrace();
}catch(IOException e){
System.err.println("IOExeption");
e.printStackTrace();
}
  }
}

赤字が新しく書いた部分。

コンテンツタイプを取得する

HTML、CSSを書く人にはなじみのContent-Typeを取得します。
 urc.getContentType()

文字コードを指定して読み込む

そのためにInputStreamをBufferedReaderにあわせて使います。
BufferedReaderを用意した後のwhileの下りは定石ですね。
 InputStreamReader isr = new InputStreamReader(urc.getInputStream(),”Shift-JIS”);
 BufferedReader br = new BufferedReader(isr);
 String line;
 while( ( line = br.readLine() ) != null )
  System.out.println(line);
Shift-JISを用いる前は、EUC-JPで実験しましたが当然文字化けしたので換えました。
前回のプログラムでは数字、数値で表示されましたが、しっかり文字になりました
※出力例(一部)

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>十字路街のパラボラ -C.R.S. PARABOLA-</title>
<link rel="stylesheet" type="text/css" href="style/style.css">

このように、サイトのソースが・・・ばれます(;・∀・)

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です