掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ページタイトル取得の文字化けを直すには? (ID:85086)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして。 ExcelVBAにて、Streamオブジェクトを使用し、ホームページのタイトルを取得する処理を作っているのですが、EUC-JPコードの一部で文字化けが発生してしまいます。 Sub ページタイトルの取得実験() Dim b() As Byte Dim HttpRequest As Object Dim ReturnedData , GETURL As String GETURL = Cells(1, 4) Set HttpRequest = CreateObject("Msxml2.XMLHTTP") HttpRequest.Open "GET", GETURL, False HttpRequest.Send ReturnedData = HttpRequest.responseText If InStr(GETURL, "yahoo") <> 0 or InStr(ReturnedData, "UTF-8") <> 0 Or InStr(ReturnedData, "utf-8") <> 0 Then 'TITLEタグを抜き出す処理 ElseIf InStr(ReturnedData, "EUC-JP") <> 0 Or InStr(ReturnedData, "euc-jp") <> 0 Or InStr(ReturnedData, "x-euc-jp") <> 0 Then ReturnedData = StrConv(HttpRequest.responsebody, vbUnicode) Dim Stm As ADODB.Stream Set Stm = New ADODB.Stream Stm.Open Stm.Type = adTypeText Stm.Charset = "Shift_JIS" Stm.WriteText ReturnedData Stm.Position = 0 Stm.Type = adTypeBinary b = Stm.Read() Stm.Close Stm.Open Stm.Type = adTypeBinary Stm.Write b Stm.Position = 0 Stm.Type = adTypeText Stm.Charset = "EUC-JP" ReturnedData = Stm.ReadText() 'TITLEタグを抜き出す処理 ElseIf InStr(ReturnedData, "x-sjis") <> 0 Or InStr(ReturnedData, "shift_jis") <> 0 Or InStr(ReturnedData, "SHIFT_JIS") <> 0 _ Or InStr(ReturnedData, "Shift_JIS") <> 0 Or InStr(ReturnedData, "charset") = 0 Then ReturnedData = StrConv(HttpRequest.responsebody, vbUnicode) 'TITLEタグを抜き出す処理 End If End Sub と、作っているのですが、他のコードに対してはうまくいくのですが、EUC-JPコードの場合一部文字化けしてしまうものがあります。 例えば「http://www.pc-success.co.jp/」はタイトル取得がうまくいくのですが、「http://www.rakuten.co.jp/」ではうまくいきません。 長文になってしまいましたが、かなり根詰めてしまったので、 皆様の助言、よろしくお願い致します。 IEはv6.0。EXCEL2002/VBAを使用しています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.