Delphi 7 个西里尔字符未正确显示

Delphi 7 cyrillic characters not showing correctly

我最近要求(并付费)翻译我的 Delphi 应用程序以支持马其顿语(西里尔字体)支持。 我将要翻译的文本发布给我的签约翻译,她将翻译后的字符串发回给我。文本是从我所有的 .dfm 和 .pas 文件中提取的

当我用西里尔文翻译替换原始文本时,我可以在我最喜欢的 Notepad++(或记事本)中打开 .dfm fies 和 .pas 文件,并且我能正确看到翻译后的字符。

当我在 Delphi 中打开这些文件(作为 dpr 文件)时,我看到类似这样的内容:

请有人告诉我如何正确 convert/display Delphi 中的这些字符串。 我正在使用马其顿区域设置,但它并没有帮助我解决这个问题。

PS:是的,我仍在使用 Delphi 7,因为我喜欢它/购买了这个版本。

更新

Delphi中的原文: 原作: ПОДГОТÐ'С =]

正确的文字: ПОДИОТВИ КУТИИ ЗА ДРУИИТЕ ЦЕНТРАЛИ

我注意到,当我将 ParentFont 属性 更改为 false 并将字体设置为 Verdana 和 Cyrillic (RUSSIAN_CHARSET) 时,然后我 copy/paste 西里尔文字,它正常显示在 Delphi

好的,所以我 解决了

一步一步解决,需要Notepad++:

第一步:将 .dfm 中的所有字体替换为(例如)Verdana 或一些允许西里尔文支持的字体

第二步:将所有ParentFont = False替换为ParentFont = True

第 3 步: 在记事本++中选择:编码 -> 转换为 ANSI

就是这样,对所有 .dfm 和 .pas 文件执行此操作(仅第 3 步)

我很高兴没有听过 David Heffernan 的意见并且没有放弃!

您的文本文件是 UTF-8 编码的,而 Delphi7 需要 WinAnsi 编码,西里尔字符的代码页为 1251。

如果您愿意,您可以在 System.pas 中使用 UTF8Decode() 函数以编程方式进行转换。