Delphi 7西里尔字母不能正确显示

时间:2019-06-13 16:57:46

标签: delphi delphi-7 cyrillic

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

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

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

enter image description here

请有人告诉我如何在Delphi中正确转换/显示这些字符串。 我正在使用马其顿的区域设置,但是这个问题对我没有帮助。

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

更新

Delphi中的原始文本: 原文:ПОГГОТÐ'Ð〜 >

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

我注意到,当我将ParentFont属性更改为false并将字体设置为Verdana和Cyrillic(RUSSIAN_CHARSET)时,然后我复制/粘贴了西里尔字母,它通常在Delphi中显示

2 个答案:

答案 0 :(得分:2)

确定,所以我已解决了!

解决方案是第一步,需要Notepad ++:

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

第二步:将所有state = { records:{ data:{ location:[] } } 替换为render(){ const {records} = this.state; return{ <div> {records.data.location.map(l => l.deviceId)} // and so on </div> } }

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

仅此而已,对所有.dfm和.pas文件执行此操作(仅第3步)

我很高兴不听戴维·赫弗南(David Heffernan)并没有放弃!

答案 1 :(得分:0)

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

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