Indyで文字化けなくソースを取得するには?

解決


おかっぴき  2005-05-21 01:51:27  No: 14896

Delphi6.0+Indy10のIdHTTPを使ってソースの取得してるのですが、 
stringとして扱う時になぜか日本語が文字化けしていて 
ansiposが使えません。(Memo1に表示された状態です。) 
保存したファイルをメモ帳でみると正しい日本語になってるのですが。。 
どうすればansiposが使えるようになるでしょうか? 

procedure TForm1.Button1Click(Sender: TObject); 
var 
strHTML:AnsiString; 
stf,ltf:TextFile; 
tempfile,urlstr,sLine:string; 

begin 
tempfile:='test.txt';//保存ファイル名 
urlstr:='http://yahoo.co.jp';//URLアドレス 
Form1.Memo1.Clear; 

//ソースの取得 
try 
strHTML:=Form1.IdHTTP1.Get(urlstr); 
except 
//EIdConnClosedGracefullyを言語固有の例外に追加する。 
end; 
//テキスト書き込み 
AssignFile( stf,tempfile); 
Rewrite(stf); 
Writeln(stf,strHTML); 
CloseFile(stf); 

//テキスト読み込み 
if FileExists(tempfile) then begin 
AssignFile(ltf,tempfile); 
Reset(ltf); 
while not Eof(ltf) do begin // ファイルの終端までループ 
Readln(ltf,sLine); 
Form1.Memo1.Lines.Add(sLine);//Memoに追加 
end; 
CloseFile(ltf); 
end; 
end;


にしの  2005-05-21 03:05:15  No: 14897

本当にメモ帳で文字化けしません?
メモ帳って、Windowsに付属のものですよね。

文字化けの原因は、Yahoo!JapanのホームページがEUCで書かれているためです。
保存してもEUCですので、メモ帳だとSJISとUnicodeしか見れないため文字化けするはずです。
秀丸などでは文字化けしませんが。

EUCからSJISに変換してやれば、文字化けは解消しますよ。


おかっぴき  2005-05-21 19:25:35  No: 14898

回答ありがとうございました。
Windows付属のメモ帳ではなく、メモ帳トラッパーというソフトで
Terapadというテキストエディタにしてありました。すみません。
jconvert.pasというライブラリを見つけたので
変換してみます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加