2008-10-29 9 views
6

Có ai bắt đầu tạo Unicode Apps hoặc chuyển đổi ứng dụng hiện có sang Unicode không?Delphi 2009 và Firebird 2.1 = Unicode đầy đủ?

Làm thế nào để bạn tinh chỉnh Firebird có ít vấn đề nhất, đặc biệt là thuộc tính CHARSET?

Có sự cố nào gặp phải không? Có điều gì khác mà tôi nên biết không?

Tôi chỉ đang chuẩn bị bản thân để tôi bớt ngạc nhiên hơn, trước khi nhảy lên tàu Unicode.

+0

Câu hỏi tương tự và một số trải nghiệm: http://stackoverflow.com/questions/2302670/delphi-dbexpress-and-interbase-utf8-migration-steps-and-risks – mjn

Trả lời

1

Theo như tôi biết phần duy nhất của Delphi 2009 không bật unicode là các chức năng của bàn điều khiển như readln và writeln. Phần còn lại phải hoàn toàn unicode.

2

đó là "cạnh" của ứng dụng nơi bạn sẽ thấy các vấn đề (đọc/ghi tệp, DLL, lưu trữ, v.v.).

tệp ini: tôi đã di chuyển từ TIniFile (ansi only) sang TMemIniFile (đừng quên gọi UpdateFile).

đối với phần Firebird trong câu hỏi của bạn, tôi không có bất kỳ kinh nghiệm nào về điều đó.

4

Sử dụng UTF8 làm ký tự được đặt cho cơ sở dữ liệu Firebird của bạn. Đó là lựa chọn duy nhất mà hỗ trợ tất cả các nhân vật có thể, vì UNICODE_FSS là một điều của quá khứ.

Điều này tuy nhiên trực giao với câu hỏi của bạn về việc tạo chương trình Unicode bằng Delphi. Ngay cả đối với một chương trình Ansi Delphi mới sử dụng bảng mã UTF8 sẽ là lựa chọn tốt nhất của bạn, vì bạn có thể dịch các chương trình Ansi (ví dụ bằng cách sử dụng GNU gettext cho Delphi http://dybdahl.dk/dxgettext/) sang các ngôn ngữ khác, và chỉ với một cơ sở dữ liệu UTF8, bạn có thể lưu trữ tất cả các văn bản có thể được gửi đến cơ sở dữ liệu, tùy thuộc vào mã của Windows. Cách khác là sử dụng các bộ ký tự cơ sở dữ liệu khác nhau cho các triển khai khác nhau, và sau đó bạn không còn có thể trao đổi các tệp cơ sở dữ liệu hoặc di chuyển dữ liệu giữa các cài đặt mà không cần phải mã hóa lại nó.

Đối với công việc phát triển của bạn, hãy đảm bảo rằng chương trình quản trị cơ sở dữ liệu của bạn hoạt động hoàn hảo với cơ sở dữ liệu UTF8. Vì hầu hết chúng được viết bằng Delphi, bạn có thể có vấn đề, trừ khi nó sử dụng các điều khiển có khả năng Unicode.