はじめまして
いろいろ試していたのですが、行き詰ってしまったので質問させてください。
Memo1を配置。ユーザに文字列を入力させて、保存ボタンを押すとテキストファイルが生成されmemo1の内容が保存されるというものです。
Shift-jisでは問題なく保存されるのですが、UTF-8での保存がうまくいきません。
memo1.lines.textを保存する際のUtf8Encodeの方法がうまくいっていないようです。
かんたんに保存できる方法はありますでしょうか?
よろしくお願いいたします。
何がうまくいかないのか不明。
Shift-jisからUTF-8に変換したいのならこれでいけると思うけど。
UTF8文字列 := UTF8Encode(WideString(シフトJIS文字列));
イマイチさまありがとうございます。
やりたいことはmemoの内容をutfファイルではき出すってことなのですが
↓ではうまくいかないのです
procedure TForm1.Button1Click(Sender: TObject);
begin
hozon := UTF8Encode(WideString(memo1.Lines.Text));
memo1.Lines.Text:=hozon;
Memo1.Lines.SaveToFile('test.txt');
end;
これを追加したら元に戻る?
Memo1.Lines.Text := UTF8Decode(Memo1.Lines.Text);
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。
「これで↓元に戻るか」ってコト聞いてるんだけど...
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;
ツイート | ![]() |