Delphi 2009:用UTF-8丢失字符写字符串

时间:2014-02-27 11:11:53

标签: string utf-8 delphi-2009

我测试了这里发布的代码: Why ini file is not being saved?

调用“SaveSettings”程序后,settings.ini以UTF-8格式保存,一切正常。第二次调用(settings.ini已经存在)后,ini文件被更新但UTF8编码的字符丢失了,???????????而是显示。文件编码丢失ini包含plain TEXT。

Uses IniFiles;
const
SZ_APP_NAME;

Procedure TForm1.SaveSettings;
var
  _MemIniU: TMemIniFile;
  SettingsPath: string;
begin
  SettingsPath := GetHomePath + PathDelim + SZ_APP_NAME + PathDelim;
  _MemIniU := TMemIniFile.Create(ChangeFileExt(SettingsPath, 'Settings.ini'),
    TEncoding.UTF8);
  try
    if Form1.WindowState <> TWindowState.wsMaximized then
    begin
      _MemIniU.WriteInteger(SZ_APP_NAME, 'WindowLeft', Form1.Left);
      _MemIniU.WriteInteger(SZ_APP_NAME, 'WindowTop', Form1.Top);
      _MemIniU.WriteInteger(SZ_APP_NAME, 'WindowWidth', Form1.Width);
      _MemIniU.WriteInteger(SZ_APP_NAME, 'WindowHeight', Form1.Height);
      _MemIniU.WriteString(SZ_APP_NAME, 'UnicodeText', Edit1.Text);
      _MemIniU.UpdateFile;
    end;
  finally
    _MemIniU.Free;
  end;
end;

0 个答案:

没有答案