首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MacOS上打开INI文件时出现Unicode映射错误

在MacOS上打开INI文件时出现Unicode映射错误
EN

Stack Overflow用户
提问于 2016-09-23 21:31:45
回答 2查看 307关注 0票数 1

我试图使用TIniFile在Mac上打开一个INI文件

代码语言:javascript
复制
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

有人知道我如何解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-24 20:35:17

如果您的.ini文件是UTF-8编码的,并且包含有效的UTF-8数据,那么您的代码看起来非常好。我不知道您的文件中有什么,但是看起来您的.ini文件不包含有效的UTF-8数据。

因此,您必须找到.ini文件使用的编码方法。如果您的.ini文件是ANSI,那么您可以按如下方式打开它:

代码语言:javascript
复制
SettingsFile := TIniFile.Create(aINIFileName, TEncoding.ANSI);
票数 3
EN

Stack Overflow用户

发布于 2017-09-22 22:11:29

这对我来说很管用:

如果您的.ini文件是UTF-8编码的,并且包含有效的UTF-8数据,那么您的代码看起来非常好。我不知道您的文件中有什么,但是看起来您的.ini文件不包含有效的UTF-8数据。

因此,您必须找到.ini文件使用的编码方法。如果您的.ini文件是ANSI,那么您可以按如下方式打开它:

SettingsFile := TIniFile.Create(aINIFileName,TEncoding.ANSI);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39669845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档