PDA

View Full Version : سوال: نمایش علامت سوال به جای حروف فارسی



javad14
جمعه 20 شهریور 1394, 18:16 عصر
سلام دوستان من یه داده ی فارسی تو پایگاه داده ذخیره کردم(که فارسی هم ذخیره شده و مشکلی نداره)اما وقتی تو session ازش استفاده می کنم و تو صفحه میزارم علامت سوال نشون میده(صفحمم utf8ذخیره کردم خوده جدولم تو mysql به صورت utf8_persian_ci ایجاد کردم کسی میدونه چرا اینطوری شده؟؟

مهرداد سیف زاده
جمعه 20 شهریور 1394, 19:29 عصر
قبلش بلای دیگه ای سر اون متن نیاوردی مثلا htmlentities چون شدیدا حساسه و تبدیل encoding انجام میده موقع این جور کارها
همچنین قبل از session_start تکه کد زیر رو قرار بدید



header('Content-Type: text/html; charset=UTF-8');

MohammadReza1994
جمعه 20 شهریور 1394, 21:08 عصر
قبلش بلای دیگه ای سر اون متن نیاوردی مثلا htmlentities چون شدیدا حساسه و تبدیل encoding انجام میده موقع این جور کارها
همچنین قبل از session_start تکه کد زیر رو قرار بدید



header('Content-Type: text/html; charset=UTF-8');

<?php
try {
header('Content-Type: text/html; charset=UTF-8');
print "پی اچ پی";

}
catch (Exception $e) {
print $e->getMessage();
}
?>

کار نمیکنه

javad14
جمعه 20 شهریور 1394, 21:26 عصر
نه ازش استفاده نکردم . قبل session_start که گذاشتم error داد.فک کنم قبل session_start اصن نباید چیزی نوشت

pbm_soy
شنبه 21 شهریور 1394, 01:22 صبح
بله قبل از session_start نمیتوانید چیزی را برای خروجی (یا همان کلاینت) بفرستید

اگر داده ها بدرستی یعنی بصورت utf8 ذخیره شده باشند و صفحه هم میگید بصورت utf8 تنظیم شده است (توسط تگ متا و خصوصیت charset آن) پس فقط ایراد از نحوه خواندن رکوردها از دیتابیس باقی میماند!

آیا وقتی از دیتابیس میخوانید بصورت یونیکد میخوانید؟ یعنی ارتباطی که به mysql server میزنید از نوع UTF8 است؟ برای اینکار راههای مختلفی وجود دارد مانند استفاده از تابع mysql_set_charset
و یا اگر از mysqli استفاده میکنید mysqli_set_charset را استفاده کنید

javad14
شنبه 21 شهریور 1394, 20:17 عصر
ممنون درست شد!