VB.NET を利用して、Yahoo! のトップページのソースを文字列として取得したいと思います。

Yahoo!のページは文字コードがEUCだと思いますので、Shift-JISにも変換したいです。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2006/10/15 22:50:03
  • 終了:2006/10/22 22:50:03

回答(1件)

id:donayama No.1

donayama回答回数4ベストアンサー獲得回数02006/10/16 02:37:49

ポイント60pt

using使いまくってますが、.NET Framework 2.0ならということで。

        Dim url As String = "http://www.yahoo.co.jp/"
        Dim ie As System.Text.Encoding = System.Text.Encoding.GetEncoding("EUC-JP")
        Dim oe As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift_JIS")

        Using client As System.Net.WebClient = New System.Net.WebClient()
            Using st As System.IO.Stream = client.OpenRead(url)
                Using sr As System.IO.StreamReader = New System.IO.StreamReader(st, ie)
                    Dim res As String = sr.ReadToEnd()
                    '↓適当な出力先に置き換えてください
                    TextBox1.Text = oe.GetString(System.Text.Encoding.Convert(ie, oe, ie.GetBytes(res)))
                End Using
            End Using
        End Using

内部処理だけの場合は sr.ReadToEnd() した時点でUTF-8のデータとして取り込まれているため上記の例ではそのまま普通にTextBox1上にソースが出力されます。(Convertしても出ますが)

あと、Shift_JISと指定するよりも

        Dim oe As System.Text.Encoding = System.Text.Encoding.GetEncoding(932)

と指定したほうがいわゆる「機種依存文字」対策になるかと思われます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません