在INI文件中显示表单上的中文字符

时间:2014-03-18 21:00:17

标签: encoding ini asianfonts

我的插件从INI文件(ANSI作为UTF-8编码)读取控制标题文本,以显示多种语言。关键是它是一个插件,我无法控制也无法更改此INI文件格式或文件类型。

它们目前正在使用TINIFile.ReadString读入我的插件并存储为string。我可以根据需要修改它(数据类型,读取方法等)。

主应用程序从其自己的应用程序语言文件中读取UCS-2 Little Endian编码为TXT文件。这些语言在更改语言时显示正常,即使Windows操作系统保留为英语(换句话说,不需要对应用程序进行操作系统区域设置更改以切换显示语言)。

我的插件表单无法显示亚洲字符(中文,日文,韩文等)。英语很好。

Close up of plugin's form while attempting to display Chinese characters

我尝试了各种字体,使用了AnsiStringString等的各种组合。为了能够在表单上显示亚洲字符,我缺少什么?我没有找到类似的问题,而是我试图专门处理我的语言文本如何被插入插件。

1 个答案:

答案 0 :(得分:0)

如果.INI文件阅读器没有解释值的内容,并且透明地允许所有值,那么您需要将字符串映射到具有正确语言环境的字符串。

Delphi 2010: how do I convert a UTF8-encoded PAnsiChar to a UnicodeString?处有一个类似的问题,解释了如何进行转换。您可能需要将内容提取到RawByteString以避免隐式转换。