PDA

View Full Version : مرتب سازی unicode



h_rah
چهارشنبه 26 آذر 1382, 08:00 صبح
با سلام
برای مرتب سازی اطلاعاتی که در یک بانک مثلا sql server به صورت utf8 ذخیره شده است ما قبلا از روش session.codepage=65001 در asp استفاذه می کردیم ور در واقع کدپیج صفحه را 65001 (utf8)می گذاشتیم و مشکل برطرف می شد ولی نمی دانیم در php چطور این مشکل را برطرف کنیم؟
لطفا کمکم کنید

مهدی کرامتی
چهارشنبه 26 آذر 1382, 09:51 صبح
PHP و البته تمام موارد مشابه مانند ASP برای تعیین کدپیج اطلاعات ورودی از کدپیج صفحه‌ای که به آنها Submit میشوند پیروی میکنند.
فرض کن در صفحه‌ای که اطلاعات از آن به اسکریپت شما Submit میشوند چنین Tag ای در قسمت Head دارید:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
این بدین معناست که تمام اطلاعات ورودی با کدپیج Windows-1256 خواهند بود. در صورتی که قرار باشد کدپیج یونیکد باشد بجای Windows-1256 در Tag فوق مقدار utf-8 را قرار دهید:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

h_rah
سه شنبه 02 دی 1382, 07:16 صبح
اما من هنوز مشکل مرتب سازی در یونیکد دارم :(

berehneh
سه شنبه 02 دی 1382, 22:13 عصر
توصیه من به شما دوست عزیز استفاده از توابع سری PCRE است که مخفف Perl Compatible Regular Expression هست . اینها توابعی هستند که از PERL به PHP منتقل شدند. ویژگی اینها اینست که برخلاف توابع نظیر خودشون قادر به عملیات بر روی UTF Encoding نیز می باشند

h_rah
سه شنبه 09 دی 1382, 14:35 عصر
دوست عزیز مشکل من در نامرتب بودن کاراکتر مپ فارسی utf8 می باشد.در هر صورت من مشکلم را بوسیله یک تابع حل کردم.
در صورت نیاز می توانم آن را در اختیار دوستان قرار دهم.
کار این تابع تبدیل حروف فارسی در یونیکد به کاراکتر لاتین و مرتب سازی بر اساس فیلد جدید با همان دستور order by