• ベストアンサー

HP毎にエンコードを切り替えるには?

現在以下の様にHTMLソースを表示しているのですが ページによって"Shift_JIS"や"EUC-JP"等文字コードが違っているため 表示されるHTMLが文字化け状態になる場合があります。 対象となるHPの文字コードを取得して エンコード部分を切り分けたいと思っているのですが 何か良い方法はないでしょうか? Dim SampleWebClient As New System.Net.WebClient Dim SampleByte As Byte() Dim strHtml As String '■URLからデータ取得 SampleByte = SampleWebClient.DownloadData(TextBox2.Text) '■エンコード strHtml = System.Text.Encoding.GetEncoding("Shift_JIS").GetString(SampleByte) '■HTMLソースの表示 TextBox1.Text = strHtml.Replace(vbCr, vbCrLf).Replace(vbLf, vbCrLf)

noname#21987
noname#21987

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

  • ベストアンサー
回答No.3

お世話になります。 No.1 さんがおっしゃられてますが、 必ずしもヘッダに正確な情報が盛り込まれているか どうかは解らないので、 参考URL のようなやり方でご自身で 判定する方が確実だと思います。

参考URL:
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28200&forum=7
noname#21987
質問者

お礼

回答ありがとうございました No1No2の方法しかないのかなと試行錯誤してましたが 上記の様な方法で判定する事も出来るのですね

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

SampleByteの中から charset=… の部分を切り出す

noname#21987
質問者

お礼

回答ありがとうございました。

noname#20377
noname#20377
回答No.1

未実験。保証はしない。 System.Net.WebClientメンバを見ると http://msdn2.microsoft.com/ja-JP/library/system.net.webclient_members.aspx WebClient.ResponseHeaders なるものがあるようなので、これに含まれるContent-Typeヘッダフィールドを見てみてはいかがでしょうか?(ただし、提供されているページのサーバが的確なものを返している場合に限る)

noname#21987
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • ウェブ内容をshift-jis変換するには?

    続けての質問になってしまいます。 VB.NET で、ウェブクライアントで下記のようにウェブページの内容を取得しましたが、 コードがUTF?のため日本語で表示されません。 内容を変数に格納し、shift-jis変換するにはどのように記述すればよいのでしょうか? Dim webClient As New System.Net.WebClient Dim sr As System.IO.Stream = webClient.OpenRead("http://www.nikkei.co.jp/") Dim srRead As New System.IO.StreamReader(sr) TextBox1.Text = srRead.ReadToEnd  よろしくお願いします。

  • 【C#】StreamReaderクラスのエンコード

    こんばんは。 .NetFramework1.1のStreamReaderクラスを使用して、csvファイルを読み込んでいるのですが、 エンコードでShift_JISを指定しても、"€"などの環境依存文字がそのまま取得されてしまいます。 Shift_JISに存在しない文字は文字化けして取得されるものだと思っていましたが、違うのでしょうか? DBの文字コードがShift_JISなのでこのままDBへ渡すとエラーになってしまい困っています。 ご教授下さい。宜しくお願いします。 -- ソース ---------------------------------------------- StreamReader sr = new StreamReader(path,Encoding.GetEncoding("Shift_JIS")); string str = sr.ReadLine();

  • HTMLでどうしても文字化け(エンコード指定がなぜか反映されない)

    HTMLでどうしても文字化け(エンコード指定がなぜか反映されない) こんにちわ、私が所属しているところは例年活動の発表ページを作成して、今年は私が作成担当になっています。 去年先輩が作ったものを参考に作っているのですがサーバに上げて見たところエンコードがおかしいのかどうしても文字化けしてしまいます。 以下に詳しい症状を箇条書きします。どなたか知恵を貸してくださる方、よろしくお願いします。 自スペック:WindowsVista:FireFox3.6.9 サーバの設定:エンコードはutf-8で統一されている(去年のページもすべてutf-8でした) 症状:去年と同様にcssでもhtmlでもutf-8を文字エンコードに指定しているが文字化け、ブラウザのエンコードをshift_jisに変えると直る ↓ 指定エンコードをshift_jisに変えてみるがなぜかutf-8で表示される ↓ ソースをterapadでutf-8に変換してみてからソースを上げなおしてみる ↓ やっぱりエンコードをshift_jisに変えないと文字化けが直らない 去年のページではutf-8で問題なく表示されており、指定コードの周辺は変えていないのでなぜ文字化けするかが不明です。 日本語のエンコードは普通shift_jisであってutf-8ではないですよね? 去年のページがなぜutf-8でも普通に表示されているのか、それがなぜほとんど同じ構成の自分が作ったページではできないのか、知恵をお貸しください。

    • ベストアンサー
    • HTML
  • 文字エンコードについて

    文字エンコードについてなのですが、 コンピュータでは文字1つ1つに何バイトかの値が割り振られていて、 それを翻訳的なことをして表示していることがわかりました。 で、エンコードによって同じ文字でも内部の値が異なっているということもわかりました。 そこで質問なのですが、私はPHPを勉強しています。 それで文字列のエンコードを変更する関数があるのですが、それで文字列をUnicodeに変更したとします。 でも保存するときにANSIを選択した・・・これってどういうことなんでしょう? しかも、IE等のブラウザ上からも「表示」→「エンコード」→「Shift_JIS」と選択できます。 プログラムの上からのエンコーディング テキストエディタからのエンコーディング これはどちらが優先されているのでしょう。 エンコーディングについて詳しいサイトなどありましたらお願いします。

  • CSVの読み込みについて

    いつもお世話になります。 TextBox1に品物のコードを入れて、Label1に価格を表示するという簡単そうなものです。 品物のコードはCSVファイルのItem(1)から取得します。ところが存在しないコードを入力すると、 追加情報 : インデックスが配列の境界外です というエラーが出ます。下記ソースに何を追加すればよろしいのでしょうか?ご教授下さい。よろしくお願い致します。 Dim Reader As New IO.StreamReader("C:\XXX.csv", System.Text.Encoding.GetEncoding("Shift-JIS")) Dim Items() As String Dim Line As String = Reader.ReadLine       Dim Code As String 'コード Dim kakaku As String '価格 Do Until IsNothing(Line) Items = Line.Split(",") Code = Items(1) If HinCode = TextBox1.Text Then kakaku = Items(2) Label1.Text = kakaku Exit Sub End If Line = Reader.ReadLine Loop Reader.Close()

  • LinuxでのApache2.2文字エンコード設定

    初投稿させていただきます。 今現在LinuxのFedora7を使用して簡単なサーバを動かしています。 Apacheのhttpd.conf側で排出する文字エンコードの設定はShift-Jisです。 FTPでファイルをUP⇒確認(INDEX.HTMLなど)するとしっかりSHIFT-JISで表示されて文字化けも一切ありません。 しかし、indexをおかずにディレクトリを直接閲覧してみたときになぜかそのディレクトリ内にあるファイルリストのフォントが文字化けしてしまいます。西欧文字エンコードとなってしまっているようです。 ですのでファイルを確認したいときにはいちいち文字エンコードをSHIFT-JISに直して確認しなければならない状況です。 このディレクトリのリストを最初からSHIFT-JISの設定で排出させる設定はどのようにすればよろしいのでしょうか。 (リストにあるファイル内容ではなくファイル名を表示している文字エンコードの設定です。) 文章に不備があると思いますがその際は再質問していただけますと幸いです。 よろしくお願いいたします。

  • L.L.Bean ニュースレターのエンコード

    どなたか、L.L.Bean のニュースレター(HTML形式)を購読している方で、 そのエンコード方式が分かる方は居られますか? charset=iso-2022-jp 指定で配信されているのですが、 ファイルの文字コードは Shift_JIS のようなんですよね。 ※私、HTMLメールを直接扱うことが出来ないメーラーを使用しているもので

  • テキストファイルのエンコードの種類

    VBで開発された海外のソフトウェアでテキスト形式で保存すると日本語の2バイト文字が文字化けします。で、テキストのエンコードを調べるとShift-JISだったりします。 そもそもテキストファイルのエンコードの種類を決めるのはソフトウェアなのでしょうか。それともOSの側でしょうか?

  • エンコードを変えたらHPが真っ白に。

    自分のサイトを、以前はSHIFT-JIS設定にしていました。 PHPの送信で文字化けエラーが起きた為、 設定をEUC-JP設定に変更しました。 そうしたら全てのwebページが真っ白に。。 もちろんエンコードをEUC-JPに変えれば見ることができますが、 初めてページを見る人には真っ白になってしまってういれば エンコードを変える必要があることに気づけないと思います。 色々他のページも見てみたところ、SJISでもEUCでも見れるページもありました。 この設定はどうすれば良いのでしょうか?

    • ベストアンサー
    • HTML
  • テキストファイル(英語&日本語)を読む時に文字化けいたします

     今晩は,いつも勉強させていただいております. 質問させていただきます.どうぞよろしくお願いいたします.  テキストファイル(ほとんどが自作のFortranコードで,英語と日本語のみで ございます)を読み込みたいのですが,全角文字の読み込み (下記コードになります)で文字化けいたします..  Dim SR As New System.IO.StreamReader(FileName, System.Text.Encoding.GetEncoding(51932))   '↑ここのエンコード(?)が怪しいのでは,などと考えている次第です.  Dim text As String = SR.ReadToEnd()  MsgBox("/" & text & "/")    '↑「text」が化けます...  エンコード(?いまいち理解しておりませんorz)の種類がおかしいのでは, というところまでなんとか行き着きまして,色々と検索いたしておりますと  http://www.atmarkit.co.jp/fdotnet/dotnettips/013enumenc/enumenc.html にまとめてくださっておりましたので,思いつく数字を「51932」の代わりに 入れてみましたが,どれも全角文字が文字化けいたします.. 「0 shift_jis 日本語 (シフト JIS) 」 「932 shift_jis 日本語 (シフト JIS) 」 「1200 utf-16 Unicode 」 「51932 euc-jp 日本語 (EUC) 」「1200 utf-16 Unicode 」  もしかすると別の部分に問題があるのかもしれませんが.. 調べておりますと, http://dobon.net/vb/bbs/log3-25/15325.html などよく似た症状なのですが,真似いたしましても解決いたしませんでした・・  もし,日本語と英語のテキストファイルすべてに通用するようなお勧め エンコード方法のようなものがございましたら,ご紹介いただきたくお願い申し上げます.  お詳しい方がいらっしゃいましたら,是非ともアドバイスいただきたく どうぞよろしくお願いいたします

専門家に質問してみよう