[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/06/29(Thu) 12:22
投稿者名:むっちゃん
Eメール:
URL :
タイトル:
文字コード:UPF-8のファイル
お世話になります、
VB6.0 SP6にて以下のようなプログラムを作っています。

URLDownloadToFileにて任意のWebアドレスからHPをダウンロード

ダウンロードしたHTMLの内容を解析

解析結果を保存

そこで
ダウンロードしたファイルを解析しようとしたのですが、
VBでInput文で取得すると日本語文字列が化けてしまい、
解析不能の状態になってしまいます。

ダウンロードしたファイルの文字コードがどうやらUPF-8
となっているのが問題なのかと思うのですが
VB上で文字化けしない方法が判らないでしょうか?
または、ダウンロード方法がいけないのでしょうか?

判るかたがいましたら教えていただけないでしょうか?

投稿時間:2006/06/29(Thu) 13:04
投稿者名:Blue
Eメール:
URL :
タイトル:
Re: 文字コード:UPF-8のファイル
> 文字コードがどうやらUPF-8
このような文字コードは始めてみました。(UTF-8ではなくU'P'F-8なんですよね?)

> VBでInput文で取得すると日本語文字列が化けてしまい
Inputはテキストファイルが Shift_JISエンコード されたものとして解釈するので
文字化けになってしまいます。

ADODB.Streamオブジェクトを調べてみると、CharSetプロパティで文字コードを設定でき、読み込めま
す。
ただ、CharSetに指定できない文字列例えば、今回のような UPF-8 等ではうまくいかないでしょう。

投稿時間:2006/06/29(Thu) 13:15
投稿者名:むっちゃん
Eメール:
URL :
タイトル:
Re^2: 文字コード:UPF-8のファイル->UTF-8でした

> > 文字コードがどうやらUPF-8
> このような文字コードは始めてみました。(UTF-8ではなくU'P'F-8なんですよね?)

ごめんなさい、UTF-8です。。。
注意して打ったつもりがかなりあせっていたみたいです。

>
> > VBでInput文で取得すると日本語文字列が化けてしまい
> Inputはテキストファイルが Shift_JISエンコード されたものとして解釈するので
> 文字化けになってしまいます。
>
> ADODB.Streamオブジェクトを調べてみると、CharSetプロパティで文字コードを設定でき、読み込
めま
> す。
> ただ、CharSetに指定できない文字列例えば、今回のような UPF-8 等ではうまくいかないでしょう

投稿時間:2006/06/29(Thu) 13:23
投稿者名:Blue
Eメール:
URL :
タイトル:
Re^3: 文字コード:UPF-8のファイル->UTF-8でした
では、ADODB.Streamをつかってみましょう。

簡単なサンプル)
Const adTypeText = 2
Const adReadLine = -2

Dim objStream As Object

Set objStream = CreateObject("ADODB.Stream")

objStream.Open
objStream.Type = adTypeText ' テキスト形式
objStream.Charset = "UTF-8" ' 文字コードは UTF-8
objStream.LoadFromFile "ファイルのパス"
' ファイルの終わりまで一行ずつ読み込む
Do Until objStream.EOS
    Debug.Print objStream.ReadText(adReadLine)
Loop
objStream.Close

Set objStream = Nothing

投稿時間:2006/06/29(Thu) 13:33
投稿者名:むっちゃん
Eメール:
URL :
タイトル:
【解決】Re^4: 文字コード:UPF-8のファイル->UTF-8でした
Blueさん
 ご丁寧にサンプルコードまで載せていただいて...
 これで明日のデモに間に合いそうです。
 ありがとうございました。

> では、ADODB.Streamをつかってみましょう。
>
> 簡単なサンプル)
> Const adTypeText = 2
> Const adReadLine = -2
>
> Dim objStream As Object
>
> Set objStream = CreateObject("ADODB.Stream")
>
> objStream.Open
> objStream.Type = adTypeText ' テキスト形式
> objStream.Charset = "UTF-8" ' 文字コードは UTF-8
> objStream.LoadFromFile "ファイルのパス"
> ' ファイルの終わりまで一行ずつ読み込む
> Do Until objStream.EOS
>     Debug.Print objStream.ReadText(adReadLine)
> Loop
> objStream.Close
>
> Set objStream = Nothing