我试图使用TIniFile在Mac上打开一个INI文件
SettingsFile := TIniFile.Create(aINIFileName); //Ini vertion
Try
iUpdateMaj := SettingsFile.ReadInteger('CurrentVersion', 'Maj', 0);
iUpdateMin := SettingsFile.ReadInteger('CurrentVersion', 'Min', 0);
iUpdateRel := SettingsFile.ReadInteger('CurrentVersion', 'Rel', 0);
Finally
SettingsFile.Free;
End;我得到的确切错误是:
(EEncodingError)目标多字节代码页中不存在Unicode字符的映射。
这以前在约塞米蒂很好,但是自从埃尔卡皮坦之后,它就不再起作用了。
从我所做的研究来看,这个问题与Unicode内嵌有关。我知道用记事本创建的INI文件是用UTF-8编码的,TIniFile在内部使用TStrings。
有人知道我如何解决这个问题吗?
发布于 2016-09-24 20:35:17
如果您的.ini文件是UTF-8编码的,并且包含有效的UTF-8数据,那么您的代码看起来非常好。我不知道您的文件中有什么,但是看起来您的.ini文件不包含有效的UTF-8数据。
因此,您必须找到.ini文件使用的编码方法。如果您的.ini文件是ANSI,那么您可以按如下方式打开它:
SettingsFile := TIniFile.Create(aINIFileName, TEncoding.ANSI);发布于 2017-09-22 22:11:29
这对我来说很管用:
如果您的.ini文件是UTF-8编码的,并且包含有效的UTF-8数据,那么您的代码看起来非常好。我不知道您的文件中有什么,但是看起来您的.ini文件不包含有效的UTF-8数据。
因此,您必须找到.ini文件使用的编码方法。如果您的.ini文件是ANSI,那么您可以按如下方式打开它:
SettingsFile := TIniFile.Create(aINIFileName,TEncoding.ANSI);
https://stackoverflow.com/questions/39669845
复制相似问题