gpt4 book ai didi

delphi - xe2 中的备忘录无法正确显示存储在 ansi 字符集中的元音变音字符

转载 作者:行者123 更新时间:2023-12-02 06:15:32 25 4
gpt4 key购买 nike

我们在 delphi 2007 中有一个应用程序,它将备忘录的内容写入文本文件并将其加载回来。TMemo 字符集设置为 AnisCharSet 并在项目选项中启用运行时主题 --> 应用程序已关闭。加载的内容类似于“möglich”,其中包含元音变音字符。该应用程序在 delphi 2007 中运行良好,它写入文本文件并将其读回并正确显示内容。在写入文件备忘录时,会将元音变音字符串转换为“mцchten”,并且当备忘录将其加载回来时,它会正确显示它。

现在我们已经将相同的应用程序升级到delphi xe2,在这里,当备忘录从文件加载文本时,它没有正确显示它,即,它不是将元音变音字符串显示为“möglich”,而是显示“mцchten”,在 delphi xe2 中显示元音变音字符时,delphi 2007 中发生的转换似乎不会发生。

有人可以建议如何在 delphi xe2 应用程序中正确显示元音变音字符吗?只是使用了 memo 的 savetofile 和 loadfromfile 选项,没有任何编码。在 Xe2 中,启用运行时主题已关闭,并且备忘录的字体字符集仍然是 Ansi。

这里的问题是在delphi xe2应用程序中加载并显示文本文件中的字符,该应用程序是使用delphi 2007应用程序保存的

最佳答案

变音符号在 Ansi 环境(如 D2007)中对代码页敏感,因此在 Unicode 环境(如 XE2)中需要额外处理。因此,最好使用与代码页无关的格式(例如 UTF-8)来读取/写入数据。特别是如果数据必须从一台 PC 移动到另一台 PC,则操作系统默认的 Ansi 代码页可能会有所不同。

在这种特殊情况下,您可能必须找出当 D2007 代码保存数据时操作系统正在使用什么特定代码页(因为它会使用操作系统默认的 Ansi 代码页),然后明确告诉 XE2 代码读取数据时使用相同的代码页。在 XE2 中,TStrings.LoadFrom...() 方法有一个可选的 TEncoding 参数,您可以使用 TEncoding.GetEncoding() 方法获取特定代码页的 TEncoding 对象。

关于delphi - xe2 中的备忘录无法正确显示存储在 ansi 字符集中的元音变音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14624184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com