آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کاراکتر فارسی در MySql به شکل علامت سئوال ؟؟؟ نشان داده می شود

javac  12 سال پیش  12 سال پیش
0 0

من یه دیتابیس ساختم و collation رو هم روی utf-8 general_ci گذاشتم اما وقتی به صورت دستی مقادیر رو وارد میکنم و از جدول یک کوئری میگرم و به صورت json نمایشش میدم کاراکتر های فارسی به صورت "؟؟؟؟؟" نشون داده میشن!
راه حلش چیه؟

 برای این سوال 5 پاسخ وجود دارد.
پاسخ به سوال 
طاهر  12 سال پیش
0 0

بعد از باز کردن دیتابیس ابتدا این سه کوئری رو اجرا کن سپس درخواست های دیگه رو بزن

$sql_name="SET NAMES 'utf8'";
$sql_char="SET CHARACTER SET utf8"; 
$sql_session="SET SESSION collation_connection = 'utf8_general_ci'";

فقط یکبار بعد از اتصال به دیتابیس

0 0
ممنون :)) (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+1 0

من همه ی حالت ها رو ساده اینجا شرح دادم :)

for u :)

پاسخ به سوال 
javac  12 سال پیش
0 0

مشکل من با هیچ کدومش حل نشد!!! :(

من  دستور select رو میزنم و خروجی رو میخوام در مرورگر ببینم ؟مقادیر درون دیتابیس رو هم دستی و از طریق phpMYAdmin وارد کردم!! این دستور رو هم زدم:

mysql_set_charset("UTF8");

حتی اینم استفاده کردم:

mysqli_query($connection,"SET NAMES utf8");
mysqli_query($connection,"SET CHARACTER SET utf8");

ولی حروف فارسی علامت ؟؟؟؟؟؟؟ شد!

0 0
شما ار خودمونی :) ، دیتابیس و php رو اکسپورت کن ایمیل کن چک کنم (12 سال پیش)
0 0
چاکریم :) فرستادم (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
+1 0

ای خدا ، بابا هیچ کاری که نکردی ، یه نگاه میکردی ، شایدم 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 بود ، اونم چک کن ، ساختار جدولت هم مشکلی نداشت

0 0
thank u very much :) (12 سال پیش)
پاسخ به سوال 
Borhani  12 سال پیش
0 0

عرض سلام به تمامی دوستان اگر هیچ کدام از این روش های بالا جواب نداد به  این تایپک بروید یه روش جدیدی رو توضیح دادم:

http://answers.uncocoder.com/question/1143/نشان-ندادن-متن-های-فارسی-در-پروژه-مارکت-با-دیتا-بیس-سرور


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .