FireMonkey 多平台下 TIniFile 读 ini 文件要注意

51 篇文章 6 订阅
44 篇文章 0 订阅

简述:

如果要多平台兼容,这个 ini 文件必须是 UTF8 编码,否则如果这个 ini 文件里面有中文,安卓下会乱套。

问题:

TIniFile 在 WINDOWS 平台下,封装的是 WINDOWS 提供的接口。在 System.IniFiles 里面有注释:TIniFile - Encapsulates the Windows INI file interface (Get/SetPrivateProfileXXX functions)

经过测试,TIniFile 在 WINDOWS 环境下只能处理 ANSI 编码的文件。UTF16 和 UTF8 编码的都处理不了,中文会出乱码。

解决方法:

为了统一 WINDOWS 和安卓的代码,以及 INI 文件本身,把 INI 文件的编码做成 UTF8 -- 带 BOM 的 UTF8 文件。

而处理它的 INI ,采用 TMemIniFile ,实测可以解决编码和中文乱码的问题:

Ini := TMemIniFile.Create(MY_INI_FILE, TEncoding.UTF8);

又:

采用 TMemIniFile 要注意一个问题:写入后,默认不会自动保存到文件。

加上:

ini.AutoSave := True;

解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值