سلام این مطلب بارها و بار ها مطرح شده من یه نمونه در این مورد مطلب نوشتم ولی کامل نیست و خواستم امروز کاملترش کنم.
مشکل علامت سوال در قسمت چاپ:
$servername="localhost";
$dbname="cms2";
$user="root";
$pass="";
$dblink=mysql_connect($servername,$user,$pass);
mysql_select_db($dbname,$dblink);
mysql_query("SET CHARACTER SET utf8",$dblink);
$dbresult=mysql_query("SELECT * FROM jadval limit 5",$dblink);
باید همیشه این خط آبی قبل از ارسال کوئری باشه اگه بعد از قسمت کوئری
mysql_query
نوشته بشه علامت سوال در صفحه چاپ میشه.
مشکل نوشته های بهم ریخته:
اگر این خط رو قبل از ارسال کوئری و insert در قسمت ارسال اطلاعات به mysql قرار ندیم نوشته ها در خروجی به صورت بهم ریخته نشون داده میشه.
$handle=mysql_connect('localhost','root','');
mysql_query("SET CHARACTER SET utf8",$handle);
$query = "INSERT INTO jadval SET msg = '$msg',title='$title',date='$date'";
$result=mysql_query($query,$handle);
روش دیگه:
$Link= mysql_connect($Host,$User,$Password);
//وارد کردن مقادیر به جدول
$Query="INSERT into $Tablname values ('$_POST[sname]','$_POST[sfamily]')";
mysql_query('SET NAMES \'utf8\'');
if (mysql_db_query($Dbname,$Query,$Link)) {
حتما در صفحه ی خود در قسمت <head></head> از کد زیر استفاده کنید:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
در mysql هم Collation دیتابیس ، جدول و فیلدهایی که قراره متن فارسی در آن ها قرار بگیره رو utf8_persian_ci انتخاب کنید.