PDA

نسخه کامل مشاهده نسخه کامل : وارد کردن رکورد فارسی در sql



Adel.p30
22-10-2009, 11:33
با سلام
من یه فرم زراحی کردم که به زبان php یه سری اطلاعات رو از کاربر می گیره و وارد بانک اطلاعاتی sql میکنه
این اطلاعات به صورت فارسی هسا وقتی این اطلاعات وارد شد نتیجه رو که در بانک میبینم اصلاً فارسی نیست
درهم ورهم وارد میشه :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می خواستم بدونم چه جوری می تونم اطلاعات رو به صورت فارسی با پی اچ پی وارد بانک کنم؟
ممنون

Adel.p30
22-10-2009, 11:52
با اینکه characterset رو توی mysql برابرutf8 گذاشتم و collation رو هم روی utf8_persian_ci تنظیم کردم،باز هم وقتی فارسی وارد database می شد به شکل اجق وجق دیده میشد.

Pejvak61
01-11-2009, 11:10
اين از جمله مشكلاتي بود كه من هم در ASP داشتم ولي هيچوقت نتونستم حلش كنم. اما مشكل من اينطور بود كه در هنگام دريافت و ارسال اطلاعات اشكالي وجود نداشت هم در پايگاه داده درست ذخيره ميشد و هم در فم درست وارد مي شد وئلي وقتي از پايگاه به صفحه وب درج مي‌شد اصلاً مفهوم نبود و اصلاً هم نفهميدم مشكلش چي بود. روي Codepage هم كاركرده بودم و يه كدي رو اتخاب كرده بودم كه محتص زبان فارسي بود ولي باز هم مشكل داشت. البته از هر 10 بار استخراج 3 يا 4 بارش اينجوري بود نه همه‌ي موارد.

sarve
01-11-2009, 14:20
سلام
برای اینکه بتونی اطلاعات رو فارسی توی بانک کپی و فراخوانی کنی باید سه جا utf8 رو حتما انتخاب کنی
1-توی صفحه php که charset=utf-8
2-موقع ساخت بانک و و همین طور ایجاد هر فیلد که باید نوعشون رو حتما utf8 باشن
احتمالا این دو تا درست انجام دادی که اطلاعات رو موقع خوندن درست نمایش می دن
3- اطلاعات رو موقعی که می خوای از صفحه php به بانک بفرستی هم باید از نوع utf8 بفرستی یا دریافت کنی برای این کار کافیه کد زیر رو بعد از اینکه دیتابیس و بانک رو فراخوانی کردی عیتا کپی کنی

sarve
01-11-2009, 14:21
$sql=array(
'character_set_results' => 'utf8',
'character_set_connection' => 'utf8',
'character_set_client' => 'utf8'
);
foreach($sql as $var => $val)
mysql_query("SET $var = $val");