gpt4 book ai didi

linux - Delphi/windows 和 Linux/Lazarus 共享字符以上#127

转载 作者:可可西里 更新时间:2023-11-01 09:43:12 25 4
gpt4 key购买 nike

我正在维护一个项目,其中数据必须在 Windows 和 Linux 机器之间共享。该程序于 2003 年在 DELPHI (Windows) 中开发 - 因此有很多遗留数据文件必须(至少可能)在未来由两个系统读取。

我已经将程序移植到 Lazarus,它在 Linux 上运行得很好。

但是数据(以专有格式)将字符串存储为#0-#255 中的通用 ascii 字符。在 Linux 机器上读取数据会导致出现大量“?”符号,而不是“ñ,äöüß...”等。

我试图解决的问题:

1.) 我像往常一样在 Windows 机器上读取数据。2.) 我用修改后的版本保存了数据,它将使用 URLEncode() 对所有字符串进行编码 在节省。3.) 我还修改了使用 URLDecode 读取数据的例程4.) 我用修改后的版本保存了数据。5.) 我在 linux 上编译了修改后的版本,并从 windows 机器上复制了数据。6.) 我打开有问题的数据...并得到问号 (?) 而不是“ñ,äöüß...”等。

那么,实际的问题是:如何共享两个系统维护的数据并在(双方)编辑数据时保留这些字符?提前致谢

最佳答案

128-255 之间的

8 位 Ansi 值是字符集特定的。无论在 Windows 上使用什么字符集来保存数据(假设您依赖于 Windows 默认编码,这取决于用户的区域设置),在 Linux 上加载数据时都必须使用相同的字符集,反之亦然。世界上使用的字符集有几十种,如果不是数百种,这使得 Ansi 数据的可移植性变得困难。这正是 Unicode 旨在解决的问题。您最好将数据保存在可移植的字符集中,例如 UTF-8,然后在加载/保存数据时执行与系统字符集的转换。

关于linux - Delphi/windows 和 Linux/Lazarus 共享字符以上#127,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26090374/

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