# پایگاه‌های داده > سایر پایگاه‌های داده > MySQL > سوال: مشکل با ذخیره متن فارسی در دیتابیس

## sardarn

سلام
من یک مشکل دارم.من یک کد php نوشتم که بعد از زدن یک دکمه یک سری اطلاعات را در دیتابیس ذخیره می کنه.اگر دستی از phpmyadmin اطلاعات مورد نظر را در تیبل وارد کنم متن فارسی درست نشون داده می شه اما اگه کاربر بر روی دکه ثبت فرم کلیک کنه با متد post اطلاعات فرستاده می شود اگر کنار کوری اینسرت  دستور echo بگذاریم متن فارسی درست نشون داده می شود اما وقتی در دیتابیس ذخیره می کنه به صورت ؟؟؟؟ ذخیره می شود.هنگام اتصال به دیتابیس از دستور 
mysql_query("SET CHARACTER SET utf8;");
استفاده شده باز هم همین مشکل داریم.در ضمن وقتی به صورت دستی از phpmyadmin رکورد را وارد می کنم بعد با دستور select اونو چاپ می کنم متن فارسی درست نشون داده می شود.

مشکل کجاست؟

ممنون

----------


## javoooni

سلام دوست عزیز

باید همیشه یسری چیز هارو چک کنی
 1- موقع ساخت دیتا بیس تنظیمات collation دیتا بیس رو روی utf8_general_ci یا utf8_persian_ci قرار بدی.  2- موقع ساخت تیبل هم تنظیمات collation رو روی یکی از این دو مورد قرار بده
3- هر فیلدی که توی تیبل قراره نوشته فارسی داخلش نوشته بشه رو هم باید طبق بالا روی یکی از این دو مورد بزاری  
4- قبل از هر کاری روی دیتا بیس این دستور اجرا باید بشه 

mysql_query('SET NAMES UTF8;');

 این موارد پیش فرض دیتا بیس هست که توی مراحل بالاتر که از PDO استفاده بشه تنظیمات فرق داره (البته فقط مورد 4)  

اما یه مورد دیگه هم هست که باید رعایت کنی و به HTML مربوط هست. استفاده از کد:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

این کد هم اگر نباشه توی HTML میتونه دیتا رو بهم بریزه   ایشاالله که مشکلت حل میشه

----------


## sardarn

> سلام دوست عزیز
> 
> باید همیشه یسری چیز هارو چک کنی
>  1- موقع ساخت دیتا بیس تنظیمات collation دیتا بیس رو روی utf8_general_ci یا utf8_persian_ci قرار بدی.  2- موقع ساخت تیبل هم تنظیمات collation رو روی یکی از این دو مورد قرار بده
> 3- هر فیلدی که توی تیبل قراره نوشته فارسی داخلش نوشته بشه رو هم باید طبق بالا روی یکی از این دو مورد بزاری  
> 4- قبل از هر کاری روی دیتا بیس این دستور اجرا باید بشه 
> 
> mysql_query('SET NAMES UTF8;');
> 
> ...


سلام
همه این ها رعایت شده

----------


## javoooni

خود فایل های HTML و PHP رو در هنگام ذخیره کردن روی UTF-8 گذاشتید؟!

----------


## maryam.20

سلام.
منم این مشکل رو دارم اما با کمی تفاوت...
ممنون میشم به این تاپیک سری بزنید :
https://barnamenevis.org/showthread.p...09#post1903609

----------


## aliebrahimi1900

قبل از رشته های فارسی توی دستورات اس کیو ال N بزارید

----------


## سعید صابری

> قبل از رشته های فارسی توی دستورات اس کیو ال N بزارید


دستورات اس کیو ال نه mysql

----------


## aratoos

منم این مشکل رو دارم 
این دستوراتم گذاشتم ولی بازم درست نشد 
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER_SET utf8');

----------


## saeed333

> سلام
> من یک مشکل دارم.من یک کد php نوشتم که بعد از زدن یک دکمه یک سری اطلاعات را در دیتابیس ذخیره می کنه.اگر دستی از phpmyadmin اطلاعات مورد نظر را در تیبل وارد کنم متن فارسی درست نشون داده می شه اما اگه کاربر بر روی دکه ثبت فرم کلیک کنه با متد post اطلاعات فرستاده می شود اگر کنار کوری اینسرت  دستور echo بگذاریم متن فارسی درست نشون داده می شود اما وقتی در دیتابیس ذخیره می کنه به صورت ؟؟؟؟ ذخیره می شود.هنگام اتصال به دیتابیس از دستور 
> mysql_query("SET CHARACTER SET utf8;");
> استفاده شده باز هم همین مشکل داریم.در ضمن وقتی به صورت دستی از phpmyadmin رکورد را وارد می کنم بعد با دستور select اونو چاپ می کنم متن فارسی درست نشون داده می شود.
> 
> مشکل کجاست؟
> 
> ممنون



من فکر میکنم این مشکل میتونه با هاستی که اطلاعات توش ذخیره میشه هم مرتبط باشه

----------


## saeed333

من هم این مشکل رو دارم که متن فارسی توی تیبل دیتابیسم درج میکنم و بعد توی فایل php به صورت Ø³Ù„Ø§Ù… درمیاد
یا با اندروید یه متنی رو به فایل php ارسال میکنم اما توی دیتا بیس به صورت Ø³Ù„Ø§Ù… درمیاد
ممنون میشم کمکم کنید

----------

