Delphi 2009 и Firebird 2.1 = полный юникод? - PullRequest
6 голосов
/ 29 октября 2008

Кто-нибудь начал создавать приложения Unicode или преобразовывать существующие приложения в Unicode?

Как вы настраиваете Firebird, чтобы иметь наименьшее количество проблем, особенно атрибут CHARSET?

Есть ли проблема? Что-нибудь еще, о чем я должен знать?

Я просто готовлюсь к тому, чтобы получить меньше сюрпризов, прежде чем прыгнуть на поезд Unicode.

Ответы [ 3 ]

4 голосов
/ 01 ноября 2008

Используйте UTF8 в качестве набора символов для вашей базы данных Firebird. В любом случае, это единственный вариант, который поддерживает все возможные символы, так как UNICODE_FSS остается в прошлом.

Это, однако, ортогонально вашему вопросу о создании программ Unicode с Delphi. Даже для новой программы Ansi Delphi использование кодировки UTF8 будет вашим лучшим вариантом, поскольку вы можете переводить программы Ansi (например, используя GNU gettext для Delphi http://dybdahl.dk/dxgettext/) на другие языки и только с базой данных UTF8 вы можете хранить все текст, который может быть отправлен в базу данных, в зависимости от кодовой страницы Windows. Альтернативой может быть использование разных наборов символов базы данных для разных развертываний, и тогда вы больше не сможете просто обмениваться файлами базы данных или переносить данные между установками без предварительной перекодировки.

Для вашей работы по разработке также убедитесь, что ваша программа администрирования баз данных работает безупречно с базами данных UTF8. Поскольку большинство из них написаны на Delphi, у вас могут быть проблемы, если только он не использует элементы управления с поддержкой Unicode.

2 голосов
/ 30 октября 2008

это «края» приложения, в которых вы увидите проблемы (чтение / запись файлов, DLL, хранилище и т. Д.).

INI-файлы: я мигрировал из TIniFile (только ANSI) в TMemIniFile (не забудьте вызвать UpdateFile).

Что касается части вашего вопроса о Firebird, у меня нет никакого опыта с этим.

1 голос
/ 29 октября 2008

Насколько я знаю, единственная часть Delphi 2009, которая не поддерживает Unicode, - это консольные функции, такие как readln и writeln. Остальное должно быть полностью в юникоде.

...