【问题标题】:Delphi 2009 and Firebird 2.1 = Full Unicode?Delphi 2009 和 Firebird 2.1 = 完整的 Unicode?
【发布时间】:2008-10-29 17:58:31
【问题描述】:
是否有人开始制作 Unicode 应用程序或将现有应用程序转换为 Unicode?p>
您如何调整 Firebird 以使问题最少,尤其是 CHARSET 属性?
有遇到什么问题吗?还有什么我应该注意的吗?
在跳上 Unicode 火车之前,我只是在做好自己的准备,以便减少惊喜。
【问题讨论】:
标签:
delphi
unicode
delphi-2009
firebird
【解决方案1】:
使用 UTF8 作为 Firebird 数据库的字符集。无论如何,这是支持所有可能字符的唯一选项,因为 UNICODE_FSS 已成为过去。
然而,这与您关于使用 Delphi 创建 Unicode 程序的问题是正交的。即使对于使用 UTF8 字符集的新 Ansi Delphi 程序也是您的最佳选择,因为您可以将 Ansi 程序(例如使用 GNU gettext for Delphi http://dybdahl.dk/dxgettext/)翻译成其他语言,并且只有使用 UTF8 数据库才能存储所有文本可能会发送到数据库,具体取决于 Windows 代码页。另一种方法是为不同的部署使用不同的数据库字符集,然后您不能再简单地在安装之间交换数据库文件或迁移数据而无需先重新编码。
对于您的开发工作,还要确保您的数据库管理程序可以完美地与 UTF8 数据库配合使用。由于它们中的大多数是用 Delphi 编写的,因此您可能会遇到问题,除非它使用支持 Unicode 的控件。
【解决方案2】:
在应用程序的“边缘”,您会看到问题(文件读取/写入、DLL、存储等)。
ini 文件:我从 TIniFile(仅限 ansi)迁移到 TMemIniFile(不要忘记调用 UpdateFile)。
至于你问题的火鸟部分,我对此没有任何经验。
【解决方案3】:
据我所知,Delphi 2009 中唯一没有启用 unicode 的部分是控制台函数,如 readln 和 writeln。其余的应该是完全 unicode。