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;
本当にメモ帳で文字化けしません?
メモ帳って、Windowsに付属のものですよね。
文字化けの原因は、Yahoo!JapanのホームページがEUCで書かれているためです。
保存してもEUCですので、メモ帳だとSJISとUnicodeしか見れないため文字化けするはずです。
秀丸などでは文字化けしませんが。
EUCからSJISに変換してやれば、文字化けは解消しますよ。
回答ありがとうございました。
Windows付属のメモ帳ではなく、メモ帳トラッパーというソフトで
Terapadというテキストエディタにしてありました。すみません。
jconvert.pasというライブラリを見つけたので
変換してみます。
ツイート | ![]() |