Delphi 2009和Firebird 2.1 = 全Unicode?

6

有人开始制作Unicode应用程序或将现有应用程序转换为Unicode吗?

您如何调整Firebird以避免最少的问题,特别是CHARSET属性?

是否遇到任何问题?还有其他需要注意的事项吗?

我只是在为自己做准备,以便在跳上Unicode列车之前得到更少的惊喜。


类似的问题和一些经验:https://dev59.com/L0zSa4cB1Zd3GeqPjhuK - mjn
3个回答

4

在 Firebird 数据库中使用 UTF8 字符集。这是唯一支持所有可能字符的选项,因为 UNICODE_FSS 已经过时。

然而,这与你关于使用 Delphi 创建 Unicode 程序的问题是不相关的。即使对于新的 Ansi Delphi 程序,使用 UTF8 字符集也是最佳选择,因为你可以将 Ansi 程序翻译成其他语言(例如使用 GNU gettext for Delphi http://dybdahl.dk/dxgettext/),只有使用 UTF8 数据库才能存储可能发送到数据库的所有文本,具体取决于 Windows 代码页。另一种选择是为不同的部署使用不同的数据库字符集,然后你就不能简单地交换数据库文件或在安装之间迁移数据而不进行重新编码。

对于你的开发工作,请确保你的数据库管理程序与 UTF8 数据库无缺陷地运行。由于大多数数据库管理程序都是用 Delphi 编写的,所以你可能会遇到问题,除非它使用支持 Unicode 的控件。


2

应用程序的“边缘”是你会遇到问题的地方(如文件读写、DLL、存储等)。

ini文件:我从TIniFile(仅限ansi)迁移到了TMemIniFile(不要忘记调用UpdateFile)。

至于你提出的Firebird部分,我没有任何经验。


1
据我所知,Delphi 2009中唯一未启用Unicode的部分是控制台函数,例如readln和writeln。其他部分应该完全支持Unicode。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接