مشاهده نسخه کامل
: فارسی نویسی در php
khosrohamid
08-02-2012, 01:44
سلام
من اخیرا از یک cms مبتنی بر php که زبان فارسی رو پشتیبانی نمیکنه استفاده میکنم
من db های sql رو طوری تنظیم کردم که utf8 رو ذخیره کنه
و این رو به اول فایلهای php اضافه کردم:
<meta [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"content-type" content="text/html; charset=utf-8" />
همچنان متن هایه فارسی که وارد میکنم به db ؟؟؟؟ نمایش داده میشوند
peyman1987
08-02-2012, 18:50
بعد از کانکت شدن به دیتابیس و قبل از اینکه کوئری های دیگه رو بفرستین یک بار این کوئری باید اجرا بشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه با charset=utf-8 مشکلت حل نشده، مشکل از تنظیمات دیتابیس است. تنظیمات charset مربوط به دیتابیس اسکریپت رو دستکاری کنید. (یا روی utf8-persian یا روی latin1 بگذارید.)
khosrohamid
09-02-2012, 01:45
نه دوستان عزیز من مشکلم با دیتا بیس ها نیست
اطلاعات به درستی ذخیره میشن تو دیتا بیسها
تو سایت به صورت ????نشون داده میشن واسه همین هم عنوان تاپیک در مورد phpهست
peyman1987
09-02-2012, 19:31
نه دوستان عزیز من مشکلم با دیتا بیس ها نیست
اطلاعات به درستی ذخیره میشن تو دیتا بیسها
تو سایت به صورت ????نشون داده میشن واسه همین هم عنوان تاپیک در مورد phpهست
برای اینکه دیتای یونیکود شما از دیتابیس درست خونده بشه باید انکودینگ کانکشنی که با دیتابیس برقرار میکنین هم ست بشه. اطلاعات درست ذخیره میشن ولی موقع خوندن و منتقل شدنشون سمت PHP انکودینکشون مشکل پیدا میکنه. برای رفع این مشکل همون کوئری که گفتم رو قبل از کوئری هاتون اجرا کنین بعد کوئری بزنین و دیتا رو از دیتابیس بخونین.
khosrohamid
10-02-2012, 06:31
دوست عزیز
من با ذخیزه کردن اطلاعات مشکلی ندارم
اطلاعات به درستی ذخیره میشن
همه به صورت utf8 ذخیره میشن, من دنبال کدی در php هستم که اینارو به صورت utf 8 بخونه و در سایت درست نمایش بده در ذخیره شدن مشکلی وجود نداره
واسه php Utf8 تعریف نشده
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
neopersia
10-02-2012, 08:47
دوست عزیز شما اولین نفر نسیتید که با php اطلاعات فارسی رو ذخیر میکنید :46::دی
php مشکلی با ذخیره و بازیابی اطلاعات یونیکد در دیتابیس نداره. اون که میگن با یونیکد مشکل داره جاهای دیگه هست!
راه حلش هم همینه که پیمان جان گفت. باید بعد از کانکش انکودینگ رو در کانکشن ست کنید تا درست نمایش داده بشه.
حالا اگر با ست کردن انکودینگ موقع خواندن اطلاعات مشکلتون حل نمیشه باید اول چک کنید که کولیشن جدول و کولیشن دیتابیس درست انتخاب شده باشه. اگر کولیشن جدول درست باشه ولی کولیشن دیتابیس یه چیز دیگه باشه باز هم به مشکلی میخورید. در مرحله بعد قبل از نوشتن هم انکوئینگ رو ست کنید. این کارها رو که انجام بدید اطلاعاتی که جدید وارد میکنید به درستی نمایش داده میشه.
برای درست کردن اطلاعات قبلی هم یه کارهایی میشه انجام داد اما معمولاً چون این مشکل وقتی پیش میاد که هنوز اطلاعات اصلی وارد نشده به دردسرش نمیارزه و پاک کردن اطلاعات راحتترین کاره!
نوشته جناب مدیر صددرصد تایید میشه. حتماً عمل کنید.
من که تا حالا حتی بدون استفاده از SET NAMES utf8 هم هیچ مشکلی با فارسی نداشتم. شما الان برو داخل دیتابیست چند خط از آخرین اطلاعاتی که به فارسی نوشته شده رو کپی کن و اینجا بذار.
بعد هم حتماً نام CMS رو بذارید، شاید مشکل از جای دیگه باشه.
khosrohamid
10-02-2012, 15:55
شما اگر لطف کنید به جای راه حل های مبهم , مشکل رو برای من توضیح بدید من ممنون میشم
1. من با php اطلاعات رو ذخیره نمیکنم , با phpازشون استفاده میکنم
2.
اگر کولیشن جدول درست باشه ولی کولیشن دیتابیس یه چیز دیگه باشه این یعنی چی؟
جدول های من همون دیتا بیس منه دیگه
3.من قبل اینکه پست قبلی رو بدم راه حل گفته شده رو امتحان کردم جواب نداد
4.cms رو میتونین از اینجا دریافت کنید :[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] wberry-Pr0jcts%2FWoWFailureCMS)
5.شما حتما از سایت سازهایی استفاده میکردید که فارسی رو پشتیبانی میکرده
6. در ضمن من باید بگم که وقتی حروف فارسی رو به صورت کد وارد میکنم تو سایت درست نمایش داده میشه مثلا به جای "سلام" میزنم :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
khosrohamid
12-02-2012, 07:13
کسی نیست راهنمایی کنه؟؟؟
یا حداقل جایی رو معرفی کنه؟
peyman1987
14-02-2012, 00:51
دوست عزیز شما لطفا کوئریهای زیر رو پشت سر هم با PHP اجرا کنین و نتیجه رو بگید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توجه داشته باشین که بجای {table_name} اسم همین جدولی که عکسش رو گذاشتین رو بزارین و این دو تا کوئری رو توی کد PHP تون و پشت سر هم اجرا کنین.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.