1 فایل پیوست
مشکل با کاراکتر های فارسی در دیتابیس و نمایش
سلام و خسته نباشید
دوستان من به مشکلی بر خوردم که نیاز به کمک دارم، ممنون میشم راهنمایی بفرمائید
من یه جدول توی mysql دارم که چند تا از فیلدهاش فارسی رو ذخیره می کنند
تمامی فیلدهای فارسی به درستی ذخیره میشه جزء یکی
توی ساخت جدول مقدار این فیلد ها text تایین شده، حال میام از کاربر یکسری توضیحات فارسی رو میگیرم و ذخیره می کنم توی جدول
ذخیره میشه، ولی کاراکترهای فارسی ببه هم میریزه! طبق تصویر پیوست
حالا میام نمایش بدم، مقدار ور از فیلد می گیرم و چاپ می کنم، همون کاراکتر چاپ میشه و معادل فارسی رو نشون نمیده
مورد دوم هم اینکه اگه برای ذخیره فارسی این کاراکترها توی جدول ذخیره بشه حجم جدول بالا میره چون برای یک کاراکتر فارسی 5 - 6 تا کاراکتر معادل ذخیره میشه
به نظرتون مشکل از کجاست؟؟؟ چرا پس فیلد های دیگه که دقیقا مثل این هستند مشکلی ندارند؟
ممنون میشم راهنمایی کنید
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
نقل قول:
نوشته اصلی توسط
iroo
سلام و خسته نباشید
دوستان من به مشکلی بر خوردم که نیاز به کمک دارم، ممنون میشم راهنمایی بفرمائید
من یه جدول توی mysql دارم که چند تا از فیلدهاش فارسی رو ذخیره می کنند
تمامی فیلدهای فارسی به درستی ذخیره میشه جزء یکی
توی ساخت جدول مقدار این فیلد ها text تایین شده، حال میام از کاربر یکسری توضیحات فارسی رو میگیرم و ذخیره می کنم توی جدول
ذخیره میشه، ولی کاراکترهای فارسی ببه هم میریزه! طبق تصویر پیوست
حالا میام نمایش بدم، مقدار ور از فیلد می گیرم و چاپ می کنم، همون کاراکتر چاپ میشه و معادل فارسی رو نشون نمیده
مورد دوم هم اینکه اگه برای ذخیره فارسی این کاراکترها توی جدول ذخیره بشه حجم جدول بالا میره چون برای یک کاراکتر فارسی 5 - 6 تا کاراکتر معادل ذخیره میشه
به نظرتون مشکل از کجاست؟؟؟ چرا پس فیلد های دیگه که دقیقا مثل این هستند مشکلی ندارند؟
ممنون میشم راهنمایی کنید
اگر تنظیمات دیتابیس روی UTF-8 هست و شما داری از سایت های دیگر مطلب بر می دارید اینها unicode شده هستند باید Encode , Decode کنید حل می شود
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
سلام، چک کنید collation تیبل utf8 FA باشه.
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
collation برو و اون سلول رو utf8_persian_ci تعریف کن.
این مشکل اکثرا از داخل کدنویسی هست اگه از داخل دیتابیس تغییر میدید فارسی مینویسه تو کد نویسی تغییر بدید.
یه دستور هست encod میکنه تو گوگل بگبردید هست.
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
mb_convert_encoding("لت", 'UTF-8');
نه
- - - Updated - - -
http://s7.picofile.com/file/82421363...dasdfadasd.png
نشد که نشد
دوستان خواهشا راهنمائی بفرمائید
نوشته در جدول ثبت شده، و این نوشته ها فارسی هستند
منتها موقع نمایش تبدیل به فارسی نمیشن و همینجوری نمایش داده میشه
چیکار کنم؟
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
در هنگام ایجاد دیتابیس به این نکات توجه کنید که باید کالکشن دیتابیستون در utf-8 genralci باشه
و در هنگام ایجاد جدول هم به این نکات توجه کنید کالکشن جدولتون هم utf-8 genralci باشه بهترهست خود فیلد هاتون هم رو همین ست شده باشه .
موفق باشید .
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
نقل قول:
نوشته اصلی توسط
iroo
mb_convert_encoding("لت", 'UTF-8');
نه
- - - Updated - - -
http://s7.picofile.com/file/82421363...dasdfadasd.png
نشد که نشد
دوستان خواهشا راهنمائی بفرمائید
نوشته در جدول ثبت شده، و این نوشته ها فارسی هستند
منتها موقع نمایش تبدیل به فارسی نمیشن و همینجوری نمایش داده میشه
چیکار کنم؟
من درست حرف های شما را متوجه نشدم، نوشته ها در دیتابیس فارسی نمایش داده میشوند اما هنگام فراخوانی به این شکل اینکد شده در می آیند ؟ محتویات فایلی که نمایش میدهید میتوانید قرار دهید ؟
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
در هنگام خوانده و نوشتن تابع ذیل را فراخوانی کنید تا مشکل حل شود.
کد PHP:
mysqli_set_charset($link, "utf8")
پاسخ : مشکل با کاراکتر های فارسی در دیتابیس و نمایش
با تشکر از همه دوستانی که در این تاپیک شرکت کردن
نهایتا با تایع mb_decode مشکل حل شد و کاراکتر ها رو به فارسی برگردوند
با سپاس فراوان
- - - Updated - - -
راستی اینم بگن که شاید بعدا دوستی خواست بدونه
نوشته های من که فارسی بود میذاشتم توی یه متغییر و اونو ذخیره میکردم توی دیتابیس و توی دیتابیس فارسی نشون نمیداد و بصورت کاراکتر و * و ... نشون میداد
و لازمه که بگم utf8 کاملا توی تمامی موارد حتی کانکشت رعایت شده بود
و موقع نمایش محتویات جدول کاراکترها رو تو html نشون میداد
من تونشتم به کمک این تایع کارکترها رو به فارسی برگردونم و توی html نشون بدم