PDA

View Full Version : انتخاب Collation مناسب برای زبان فارسی



hkiani
شنبه 06 مهر 1392, 10:08 صبح
با سلام خدمت همه‌ی دوستان

من جهت آشنایی با بانک اطلاعاتی فایربرد یک بانک اطلاعاتی نمونه تشکیل دادم و در دلفی آن را مورد استفاده قرار دادم، ولی مشکلی که به آن برخوردم این بود که متن فارسی به درستی sort نمی شود.

برای ساخت بانک اطلاعاتی از FlameRobin استفاده کردم. Character Set انتخابی من utf8 می‌باشد. چند Collation برای utf8 قابل انتخاب بود: utf8 و unicode و unicode_ci و unicode_ci_ai ولی برای سورت صحیح فارسی هیچکدام درست عمل نمی‌کنند.

در MySQL از utf8_persian_ci می‌توان استفاده نمود. آیا فایربرد در این زمینه معادلی دارد یا نه؟ چه راهی را برای سورت صحیح متن فارسی شما استفاده می‌کنید.

از دوستان هر کدام در این زمینه کار کرده‌اند خواهش می‌کنم پاسخ دهند.
با تشکر

بابک.م.
شنبه 04 آبان 1392, 22:56 عصر
از کدام نسخه از دلفی استفاده می کنین؟
نسخه های قدیمی از یونیکد پشتیبانی نمی کنند.

hkiani
سه شنبه 07 آبان 1392, 09:01 صبح
از کدام نسخه از دلفی استفاده می کنین؟
نسخه های قدیمی از یونیکد پشتیبانی نمی کنند.

با تشکر از توجه شما.
از دلفی XE استفاده می‌کنم. منتها سؤال من ربطی به دلفی نداشت. حتی در محیط خارج از دلفی مانند FlameRobin اگر یک دستور SELECT اجرا کنیم اطلاعات فارسی به درستی سورت نمی‌شود (مثلا حروف گچپژ در انتها ظاهر می‌شوند).

بابک.م.
سه شنبه 07 آبان 1392, 14:43 عصر
از نسخه 2.5 به بعد میشه collation , character set پیش فرض دیتا بیس رو تنظیم کرد:
http://www.firebirdsql.org/refdocs/langrefupd25-ddl-database.html

راه حل های دیگه هم هست مثل تنظیم collation , character set برای ستون یا حتی order by
SELECT a."COMMENT"
FROM TABLE_TEST a
order by a."COMMENT" collate UNICODE

http://www.destructor.de/firebird/charsets.htm

daneshvar.hu
یک شنبه 28 دی 1393, 17:58 عصر
Charset رو UTF8 بذارید و Collate رو Unicode تا هنگام استفاده از عبارت order by بر روی رشته‌ها حروف فارسی درست مرتب بشوند.