utf8でのファイルの保存


もりちゃん  2007-04-19 09:38:42  No: 25843

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

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

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

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


イマイチ  2007-04-19 19:25:26  No: 25844

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


もりちゃん  2007-04-20 02:12:37  No: 25845

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

やりたいことは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-20 03:01:28  No: 25846

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


もりちゃん  2007-04-25 19:23:06  No: 25847

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 21:41:09  No: 25848

「これで↓元に戻るか」ってコト聞いてるんだけど...
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;


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

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






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