کاراکتر فارسی در MySql به شکل علامت سئوال ؟؟؟ نشان داده می شود
من یه دیتابیس ساختم و collation رو هم روی utf-8 general_ci گذاشتم اما وقتی به صورت دستی مقادیر رو وارد میکنم و از جدول یک کوئری میگرم و به صورت json نمایشش میدم کاراکتر های فارسی به صورت "؟؟؟؟؟" نشون داده میشن!
راه حلش چیه؟
بعد از باز کردن دیتابیس ابتدا این سه کوئری رو اجرا کن سپس درخواست های دیگه رو بزن
$sql_name="SET NAMES 'utf8'"; $sql_char="SET CHARACTER SET utf8"; $sql_session="SET SESSION collation_connection = 'utf8_general_ci'";
فقط یکبار بعد از اتصال به دیتابیس
مشکل من با هیچ کدومش حل نشد!!! :(
من دستور select رو میزنم و خروجی رو میخوام در مرورگر ببینم ؟مقادیر درون دیتابیس رو هم دستی و از طریق phpMYAdmin وارد کردم!! این دستور رو هم زدم:
mysql_set_charset("UTF8");
حتی اینم استفاده کردم:
mysqli_query($connection,"SET NAMES utf8"); mysqli_query($connection,"SET CHARACTER SET utf8");
ولی حروف فارسی علامت ؟؟؟؟؟؟؟ شد!
ای خدا ، بابا هیچ کاری که نکردی ، یه نگاه میکردی ، شایدم PHP اینت خیلی خوب نیست
function connectToDatabase(){
$connection=mysqli_connect("localhost","root","","farsi_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
////////////////// خط جدید
mysqli_set_charset($connection,"UTF8");
//////////////////
return $connection;
}
و همون اول که php باز شد ، یعنی دومین خط php ایت میشه این
header('Content-Type: text/html; charset=utf-8');
این روش خروجی رو کد میکنه ، در واقع خروجی شما میشه ، این
[{"id":"1","cat":"\u0639\u0645\u0648\u0645\u06cc","desc":"\u0645\u0637\u0644\u0628 \
u0622\u0632\u0645\u0627\u06cc\u0634\u06cc","fav":"0"}]
که البته توی stream اتوماتیک Decode میشه ، و شما متن utf-8 می بینید ! ، اما یه بار دیگه هم تاپیک رو بخون :) ، چون بازم نکته داره
- دیتابیسی که من ساختم هم utf-8 general بود ، اونم چک کن ، ساختار جدولت هم مشکلی نداشت
عرض سلام به تمامی دوستان اگر هیچ کدام از این روش های بالا جواب نداد به این تایپک بروید یه روش جدیدی رو توضیح دادم:
http://answers.uncocoder.com/question/1143/نشان-ندادن-متن-های-فارسی-در-پروژه-مارکت-با-دیتا-بیس-سرور
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .