我写了一些代码:
MnemonicList := TStringList.Create();
{$IFDEF Android}
IniPath := TPath.Combine(TPath.GetDocumentsPath, ADefaultLanguage + '.ini'); { Internal }
{$ENDIF}
{$IFDEF Win32}
IniPath := TPath.Combine(ExtractFilePath(ParamStr(0)), 'Lang' + ADefaultLanguage + '.ini');
{$ENDIF}
if FileExists(IniPath) then
begin
MemIniFile := TMemIniFile.Create(IniPath);
ShowMessage(IniPath);
MemIniFile.ReadSections(MnemonicList);
ShowMessage(IntToStr(MnemonicList.Count));
end;
第二个 ShowMessage() 在 Windows 上运行时结果为 4,在 Android 上运行时为 0...文件被正确填充,FileExists(IniPath)在Android上也给出了True。我也可以在编辑器中打开Android和Windows上的文件。在Android上的TMemIniFile上有什么区别吗?
INI 文件字符编码有问题。当我更改为不带 BOM 的 UTF-8 时,它开始工作。