PDA

View Full Version : مشکل با کاراکتر های فارسی در دیتابیس و نمایش



Vidico
شنبه 15 اسفند 1394, 17:34 عصر
سلام و خسته نباشید
دوستان من به مشکلی بر خوردم که نیاز به کمک دارم، ممنون میشم راهنمایی بفرمائید
من یه جدول توی mysql دارم که چند تا از فیلدهاش فارسی رو ذخیره می کنند

تمامی فیلدهای فارسی به درستی ذخیره میشه جزء یکی

توی ساخت جدول مقدار این فیلد ها text تایین شده، حال میام از کاربر یکسری توضیحات فارسی رو میگیرم و ذخیره می کنم توی جدول

ذخیره میشه، ولی کاراکترهای فارسی ببه هم میریزه! طبق تصویر پیوست

حالا میام نمایش بدم، مقدار ور از فیلد می گیرم و چاپ می کنم، همون کاراکتر چاپ میشه و معادل فارسی رو نشون نمیده
مورد دوم هم اینکه اگه برای ذخیره فارسی این کاراکترها توی جدول ذخیره بشه حجم جدول بالا میره چون برای یک کاراکتر فارسی 5 - 6 تا کاراکتر معادل ذخیره میشه


به نظرتون مشکل از کجاست؟؟؟ چرا پس فیلد های دیگه که دقیقا مثل این هستند مشکلی ندارند؟

ممنون میشم راهنمایی کنید

مهرداد سیف زاده
یک شنبه 16 اسفند 1394, 03:17 صبح
نوع collation‌ دیتابیس در زمان ساخت باید utf8-persian-ci در نظر بگیرید. همچنین نوع collation جدول رو هم در زمان ساخت همین در نظر بگیرید
در صفحه html حتما charset رو بر روی utf-8 تنظیم کنید
در ساخت connection به دیتابیس حتما نوع collation رو utf8 بزارید
http://www.w3schools.com/php/func_mysqli_set_charset.asp

Vidico
یک شنبه 16 اسفند 1394, 08:08 صبح
نوع collation‌ دیتابیس در زمان ساخت باید utf8-persian-ci در نظر بگیرید. همچنین نوع collation جدول رو هم در زمان ساخت همین در نظر بگیرید
در صفحه html حتما charset رو بر روی utf-8 تنظیم کنید
در ساخت connection به دیتابیس حتما نوع collation رو utf8 بزارید
http://www.w3schools.com/php/func_mysqli_set_charset.asp

همه موارد رعایت شده،
دیدین توی frontpage وقتی یه متن فارسی مینویسی و بعد میری کد html رو نگاه میکنی می بینی به جای کلمه فارسی یکسری کاراکتر انداخته توی کد html
حالا منم میخوام یه متن فارسی رو توی جدول ذخیره کنم ولی میرم توی تیبل mysql میبینم معادل فرونت پیجش اونجاست!!!!

پیام حیاتی
یک شنبه 16 اسفند 1394, 09:32 صبح
سلام
از N در innsert استفاده کردید؟


$Query="INSERT INTO student(s_fullname,s_reshte)VALUES(N'$_POST[fullname]',N'$_POST[reshte]')";

جهت نمایش قبل از کوئری select این خط کد را قرار دادید؟

mysql_query('set names "utf8"');