utf8でのファイルの保存


もりちゃん  2007-04-19 00:38:42  No: 25843  IP: 192.*.*.*

はじめまして
いろいろ試していたのですが、行き詰ってしまったので質問させてください。

Memo1を配置。ユーザに文字列を入力させて、保存ボタンを押すとテキストファイルが生成されmemo1の内容が保存されるというものです。

Shift-jisでは問題なく保存されるのですが、UTF-8での保存がうまくいきません。

memo1.lines.textを保存する際のUtf8Encodeの方法がうまくいっていないようです。
かんたんに保存できる方法はありますでしょうか?
よろしくお願いいたします。

編集 削除
イマイチ  2007-04-19 10:25:26  No: 25844  IP: 192.*.*.*

何がうまくいかないのか不明。
Shift-jisからUTF-8に変換したいのならこれでいけると思うけど。
UTF8文字列 := UTF8Encode(WideString(シフトJIS文字列));

編集 削除
もりちゃん  2007-04-19 17:12:37  No: 25845  IP: 192.*.*.*

イマイチさまありがとうございます。

やりたいことはmemoの内容をutfファイルではき出すってことなのですが

↓ではうまくいかないのです

procedure TForm1.Button1Click(Sender: TObject);
begin
hozon := UTF8Encode(WideString(memo1.Lines.Text));
memo1.Lines.Text:=hozon;
Memo1.Lines.SaveToFile('test.txt');
end;

編集 削除
そうなの?  2007-04-19 18:01:28  No: 25846  IP: 192.*.*.*

これを追加したら元に戻る?
 Memo1.Lines.Text := UTF8Decode(Memo1.Lines.Text);

編集 削除
もりちゃん  2007-04-25 10:23:06  No: 25847  IP: 192.*.*.*

procedure TForm1.Button1Click(Sender: TObject);
begin
hozon := UTF8Encode(WideString(memo1.Lines.Text));
Memo1.Lines.Text := UTF8Decode(Memo1.Lines.Text);
memo1.Lines.Text:=hozon;
Memo1.Lines.SaveToFile('test.txt');
end;

にしましたが、Memo1には文字化けで表示されるし、ファイルも文字化けというありさまです。
ちなみにDelphi6。

編集 削除
そんでなぐて  2007-04-25 12:41:09  No: 25848  IP: 192.*.*.*

「これで↓元に戻るか」ってコト聞いてるんだけど...
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Text := UTF8Encode(WideString(Memo1.Lines.Text));
  Application.ProcessMessages;
  ShowMessage('UTF8エンコード');
  Memo1.Lines.Text := UTF8Decode(Memo1.Lines.Text);
  ShowMessage('UTF8デコード');
end;

ンで、...ジカにヤルならコレ↓
procedure TForm1.Button2Click(Sender: TObject);
var
  hozon : string;
begin
  hozon := UTF8Encode(WideString(Memo1.Lines.Text));
  with TFileStream.Create('test.txt', fmCreate) do try
   Write(hozon[1], Length(hozon));
  finally
   Free;
  end;
end;

編集 削除