@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

HttpWebResponse.CharacterSetについて

1
投稿者投稿内容
にいお
会議室デビュー日: 2004/03/15
投稿数: 1
投稿日時: 2004-03-15 23:53
はじめまして、にいおと申します。

現在、指定されたURLのソースを読み込んで、テキストボックスに表示するプログラムを作成しています。
http://ja.gotdotnet.com/quickstart/util/srcview.aspx?path=/quickstart/howto/samples/Globalization/MultipleEncodings/MultipleEncodings.src
などを参考にしてプログラムを書いているのですが、エンコードの部分で引っかかっています。

[ソース]
**********************************************************************
private function read_html(p_url as string ) as string
'WebRequestの作成
Dim webreq As System.Net.HttpWebRequest _
= CType(Net.HttpWebRequest.Create(p_url), Net.HttpWebRequest)

'WebResponseの取得
Dim webres As System.Net.HttpWebResponse _
= CType(webreq.GetResponse(), Net.HttpWebResponse)

'encodeの取得
Dim encode As Text.Encoding
If webres.CharacterSet = "" Then
encode = Text.Encoding.GetEncoding("shift-jis")
Else
encode = Text.Encoding.GetEncoding(webres.CharacterSet)
End If

'受信して文字列を返す
Dim st As System.IO.Stream = webres.GetResponseStream()
Dim sr As New System.IO.StreamReader(st, encode)
Return sr.ReadToEnd()

'閉じる
sr.Close()
st.Close()
end function
**********************************************************************

指定されたページの文字コードでエンコードするために、
「webres.CharacterSet」を見て判断しようとしています。

しかし、いくつかページを見てみたのですが、
必ず webres.CharacterSet=""となってしまい、CharacterSetの値がとれてこないのです。
HTMLに<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

そのため、表示結果が文字化けしてしまうのですが、
HttpWebResponse.CharacterSetの値はどうやったら取れるのでしょう。
ご存知の方おられましたら、教えてください。
よろしくお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)