درحالت پیشفرض وقتی یه رکورد فارسی رو میخواییم تو دیتابیس ثبت کنیم با مشکل مواجه میشیم و در دیتابیس عبارات فارسی بصورت علامت سوال یا حروف درهم ریخته نمایش داده میشن !
برای حل این مشکل فقط کافیه هنگامی که میخوایید جدول ایجاد کنید مقدار Collation فیلد هارو روی utf8_general_ci تنظیم کنید
اما اگر از قبل جدول ایجاد شده دارید کافیه وارد قسمت Structure جدول مورد نظر شوید و با استفاده از گزینه change هر فیلد ، Collation رو به utf8_general_ci تغییر بدید ! با این تنظیمات، دیتابیس شما هم حروف فارسی و هم انگلیسی رو بصورت صحیح نمایش میده !
گاهی اوقات به دلیل تنظیم نبودن مناسب کلاسها و دستورات کار با دیتابیس روی set name UTF8 در php متون ذخیره شده در دیتابیس به صورت اجق وجق ذخیره میشن مثلا در دیتابیس متون ذخیره شده فارسی به صورت زیر ذخیره میشود
خب برای درست کردن این متون در بانک اطلاعاتی باید چند تغییر انجام دهید کد زیر را در یک کوئری اجرا کنید تا متون فارسی ذخیره شده درست شود
این دستورات رو میتونید در دیتابیس خود در تب sql در بالای phpmyadmin وارد کنید , فقط به یاد داسته باشید پیش از تغییرات از تب export از دیتابیس خود backup بگیرید.
alter table tablename change colname colname LONGTEXT CHARACTER SET latin1;
alter table tablename change colname colname LONGBLOB;
alter table tablename change colname colname LONGTEXT CHARACTER SET utf8;
به جای tablename نام جدول و بجای colname نام ستون مورد نظر خود را قرار دهید