Javaのエンコードについて

このQ&Aのポイント
  • さまざまなホームページを探して、下記のプログラムでホームページの情報は読み取ることができるようになったのですが、文字化けを起こして見ることができません。
  • 何をどうすれば文字化けを防げるのかまったくわかりません。
  • ご存知の方、おしえていただけないでしょうか?おねがいいたします。
回答を見る
  • ベストアンサー

javaのエンコードについて?

さまざまなホームページを探して、下記のプログラムでホームページの情報は読み取ることができるようになったのですが、文字化けを起こして見ることができません。 何をどうすれば文字化けを防げるのかまったくわかりません。 ご存知の方、おしえていただけないでしょうか? おねがいいたします。 import java.io.*; import java.net.*; class test{ public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.yahoo.co.jp/"); in = new BufferedReader(new InputStreamReader(url.openStream())); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • President
  • ベストアンサー率57% (12/21)
回答No.1

こんにちは。 in = new BufferedReader(new InputStreamReader(url.openStream())); を in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); としたら文字化けせずに見れました。 APIの詳細はこちらでどうぞ。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/
tihiro_t
質問者

お礼

回答いただきありがとうございます。 無事解決いたしました。 しかし、URLを変えるとうまくいかないのです。 もしよろしければ、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=953163 にて回答をいただけましたら幸いです

関連するQ&A

  • javaのエンコードについて?

    下記のプログラムでホームページの情報は読み取ることができるようになったのですが、一部ホームページ(UTF-8エンコードのホームページと思われる)、文字化けを起こして見ることができません。 解決する方法を、教えていただけないでしょうか? おねがいいたします。 import java.io.*; import java.net.*; class test{ public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.faireal.net/"); in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

    • ベストアンサー
    • Java
  • javaでクッキーを取得したい

    以下ソースで、ホームページのデータは取得できるのですが、クッキーが必要なページではうまく作動しません。 どのように改良すればよいでしょうか? また、こういったプログラムを作るのに参考になる書籍をご存知でしたら教えてください。 よろしくお願いいたします。 import java.io.*; import java.net.*; class test { public static void main(String[] args) throws Exception { URL url = null; BufferedReader in = null; String readString = null; url = new URL("http://www.yahoo.co.jp"); in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while((readString=in.readLine())!=null) System.out.println(readString); in.close(); } }

    • ベストアンサー
    • Java
  • Java での グローバルIP取得

    Java を利用してグローバルIPの取得方法を探しています。 以下のサイトを参考にいたしました。 http://stackoverflow.com/questions/2939218/getting-the-external-ip-address-in-java 文中中ほどの以下のソースを試したのですが「checkip.amazonaws.com」と通信を行うせいか、ワンテンポページ表示に時間がかかります。 JavaでのグローバルIP取得するには他に良い方法はあるのでしょうか? それとも、whatismyipのようなサイトと通信を行わないとできないのでしょうか? よろしくお願い致します。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; public class IpChecker { public static String getIp() throws Exception { URL whatismyip = new URL("http://checkip.amazonaws.com"); BufferedReader in = null; try { in = new BufferedReader(new InputStreamReader( whatismyip.openStream())); String ip = in.readLine(); return ip; } finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }

  • javaについて>IEのクッキーを使いたい

    IEでログインした状態であれば、ヤフーメールなどクッキーを使うHPにアクセスできるかと思ったのですがアクセスできません。どうすればよいでしょうか? 多分、javaはIEのクッキーを利用していないのですよね・・・ 何とか、IEのクッキーを利用できれば良いのですが。何か、良いお知恵はありませんでしょうか? 宜しくお願い致します。 以下、コードです。 ーーーーーーーーーーーーーーーーーーーーーーー import java.io.*; import java.net.*; class Test { static String input() throws IOException { InputStream is = new FileInputStream("url.txt");//urlを入力 BufferedReader br = new BufferedReader(new InputStreamReader(is)); String str = br.readLine(); return(str); } static void read(String str) throws IOException { OutputStream os = new FileOutputStream("log.txt",true); BufferedWriter fr = new BufferedWriter(new OutputStreamWriter(os)); URL url = new URL(str); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); for (;;) { String i = in.readLine(); if(i == null) { break; } System.out.println(i + "\n"); fr.write(i + "\n"); } in.close(); fr.close(); } public static void main(String[] args) throws IOException { Test brow = new Test(); brow.read(brow.input()); } }

    • ベストアンサー
    • Java
  • 文字コードを変換する

    //このプログラムは、指定されたURLのソースを読むプログラムです。 import java.io.*; //入出力のAPIを実装するのに用います。 import java.net.*; //ネットワークに関するAPIを実相するのに用います。 import java.lang.*; class rss { public static void main(String args[]) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("読み込みたいRSSのURIを入力してください。"); String address = br.readLine(); //URLを標準入力から読み込みます。 URL url = new URL(address); InputStream uin = url.openStream(); BufferedReader in = new BufferedReader(new InputStreamReader(uin)); String source; //ソースファイル一行を格納する文字列変数です。 //指定したURLのソースファイル標準出力します。 while((source = in.readLine()) != null ){ System.out.println(source); } } catch(IOException e){ System.out.println("ソースを読みこめませんでした。"); } } } というプログラムを作ったのですが、 一部のソースファイルが文字化けを起こします。 そのソースがどの文字コードでできているか? そして、それをどうやったら変換したらいいかを 教えてほしいのです。 お願いします。

    • ベストアンサー
    • Java
  • 「プログラミング」JAVAのエラーが解決できません。

    ホームページを見たり、メールチェックをしたり、数分間このプログラムを走らせると、 Address already in use: connect java や Connection refused: connect といったエラーメッセージが出ます。 どうすれば、解決するでしょうか? やさしいJAVAやインターネットで調べたのですが良い方法が分かりません。ぜひ、ご教示宜しくお願い致します。 import java.net.*; import java.io.*; import java.util.*; import java.text.*; class Test { public static void main(String[] args) throws Exception { String helloURL; for(int a=1; a<3000; a++) { helloURL = "http://shopping.yahoo.co.jp/"; Th th1 = new Th(helloURL); th1.start(); Thread.sleep(100); } } } class Th extends Thread { String helloURL = null; String line; Th(String str) { this.helloURL = str; } public void run() { try { URL url = new URL(helloURL); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"JISAutoDetect")); while ((line = in.readLine()) != null) { try { OutputStream os = new FileOutputStream("log.txt",true); BufferedWriter fr = new BufferedWriter(new OutputStreamWriter(os)); if(line.indexOf("ヤフー") != -1) { fr.write(line); } if(line.indexOf("あ") != -1) { fr.write(line); } fr.close(); os.close(); } catch(Exception e){System.out.println("エラー1 : "+e.getMessage());} } in.close(); } catch(Exception ex){System.out.println("エラー2 : "+ex.getMessage());} } }

    • ベストアンサー
    • Java
  • 今勉強中のjavaで。わからないことがあります。

    import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); int num =Integer.parseInt(str1); System.out.println("あなたは" + num +"歳です。"); } } ------------------------------- import java.io.*; class Ireru { public static void main(String args[]) throws IOException{ System.out.println("あなたは何歳ですか?"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); System.out.println("あなたは" + str1 +"歳です。"); } } なぜ下では悪いのですか?なぜnum をつかないといけないかがわかりません。正確には str1とnumの違いがわからなくて困っています。何が混乱の原因ですか?

    • ベストアンサー
    • Java
  • javaについて

    こういうプログラムを組んだんですが、うまく実行できません。 どんな改善をしたらよいでしょうか? import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; public class Sample { public static void main(String[] args) { String htmlSrc = getHTMLSrc("http://search.yahoo.co.jp/search?p=java", "UTF-8"); htmlSrc = htmlSrc.replaceAll("<.+?>| ", ""); htmlSrc = htmlSrc.replaceAll(".*件-", ""); htmlSrc = htmlSrc.replaceAll("秒.*", "秒"); System.out.println(htmlSrc); } private static String getHTMLSrc(String strURL, String charSet) { StringBuffer sb = new StringBuffer(); HttpURLConnection conn = null; BufferedReader br = null; try { URL url = new URL(strURL); conn = (HttpURLConnection)url.openConnection(); InputStreamReader isr = new InputStreamReader(conn.getInputStream(), charSet); br = new BufferedReader(isr); String tmp = ""; while ((tmp = br.readLine()) != null) { sb.append(tmp); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (br != null) { br.close(); } if (conn != null) { conn.disconnect(); } } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } } 以下のエラーが表示されるんですが、どうしたらよいでしょうか?? 環境が悪いのでしょうか?? java.net.ConnectException: Operation timed out

    • ベストアンサー
    • Java
  • HttpのResponseが文字化け

    以下のプログラムの結果が文字化けします。 正しい文字コード(EUC-JP)にしているのですが 文字化けしてしまいます。 解消方法を教えて下さい。 ----- import java.net.*; import java.io.*; public class HelloWorldSocketClient { public static void main(String[] args) throws Throwable{ Socket socket = new Socket("www.sumishinam.co.jp", 80); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out.println("GET / HTTP1.0\n"); String buff; while((buff=in.readLine())!=null){ System.out.println(new String(buff.getBytes(),"EUC-JP")); } out.close(); in.close(); socket.close(); } }

  • JavaでString型をChar型に変換するプログラムが分かりません

    JavaでString型をChar型に変換するプログラムが分かりません;; どなかた助けて下さい。 下のプログラムの何がいけないんでしょうか?? いろいろ間違ってるところはあると思うんですが、教えて下さい! import java.io.*; class { public static void main(String args[]) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); StringBuffer moji = new StringBuffer(str1); char nyuu=moji;

専門家に質問してみよう