
نوشته شده توسط
مهرداد۶۶
ممنون از نظر شما
در مورد دیتابیس در زمان ساخت نوع cllation رو روی utf-8 که حالا میتونه bin یا persian_ci هم باشه. این کار باعث میشه داده ها بصورت encoding در دیتابیس ذخیره بشه. یعنی اگر مستقیما توسط mysql یا نر افزار phpmyadmin داده insert کنید بصورت encoding ذخیره و نشون داده میشه(یعنی حروف فارسی بصورت علامت ? در نمیاد)
در زمان اتصال به دیتابیس درایور مورد نظر حالا چه pdo یا mysqli یا هر درایور دیگری از شما نوع داده در حال رد و بدل شدن رو میگیره. درسته که دیتابیس شما utf-8 بوده ولی اگر درایور روی utf-8 تنظیم نشه داده های رد و بدل شده با دیتابیس دچار تغییرات میشه و امکان داره که بصورت ? نشون داده بشه.
پس با این حساب در زمان اتصال هم باید درایور مورد نظر رو روی utf-8 تنظیم کنیم. که در codeigniter درون فایل کانفیگ دیتابیس(پوشه config فایل database.php) بصورت پیشفرض بر روی utf-8 گذاشته شده.
.
بسیار بسیار ممنون
من الان دقیقا همین کار رو کردم.
کالکشن دیتابیس رو موقع ساختن utf8_persian_ci مشخص کردم و تویه
database.php کانفیگ هم مشخص کردم که utf8_persian_ci باشه و باز هم اطلاعات بصورت علامت سوال نشون داده می شه. حتی اومدم و یه بار دیگه یه دیتابیس utf8_general_ci ساختم باز هم همین مشکل بود. الان با utf8_bin هم این کارو کردم بازم همون نتیجه بود.
احیانا تنظیمات دیگه ای نباید انمجام بشه؟ مثلا تویه فایل config زبان فارسی مشخص بشه ؟
حتی من در Php.ini هم default_charset =UTF-8 کردم (اما باز هم نشد)
روی هاست هم بردم باز هم همین مشکل وجود داره.
پروژه ام رو هم آپلود کردم : http://www.uploadscenter.com/uhwbs5k9vj2k
صفحه ای که در اون مشکل دارم:
http://localhost/index.php/post