我的插件从INI文件(ANSI作为UTF-8编码)读取控制标题文本,以显示多种语言。关键是它是一个插件,我无法控制也无法更改此INI文件格式或文件类型。
它们目前正在使用TINIFile.ReadString
读入我的插件并存储为string
。我可以根据需要修改它(数据类型,读取方法等)。
主应用程序从其自己的应用程序语言文件中读取UCS-2 Little Endian编码为TXT文件。这些语言在更改语言时显示正常,即使Windows操作系统保留为英语(换句话说,不需要对应用程序进行操作系统区域设置更改以切换显示语言)。
我的插件表单无法显示亚洲字符(中文,日文,韩文等)。英语很好。
我尝试了各种字体,使用了AnsiString
,String
等的各种组合。为了能够在表单上显示亚洲字符,我缺少什么?我没有找到类似的问题,而是我试图专门处理我的语言文本如何被插入插件。
答案 0 :(得分:0)
如果.INI文件阅读器没有解释值的内容,并且透明地允许所有值,那么您需要将字符串映射到具有正确语言环境的字符串。
Delphi 2010: how do I convert a UTF8-encoded PAnsiChar to a UnicodeString?处有一个类似的问题,解释了如何进行转换。您可能需要将内容提取到RawByteString以避免隐式转换。