PDA

View Full Version : مشکل در خواندن اطلاعات از پایگاه داده



esmahdi
شنبه 16 مهر 1390, 14:54 عصر
سلام من اطلاعاتم رو که فارسیه تو پایگاه داده به صورت درست ذخیره می کنم.
utf8 رو هم به صفحه خودم با کد زیر اعمال کردم:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

و قبل از خواندن اطلاعات از دیتابیس هم از دستور زیر استفاده می کنم:

mysql_query('SET NAMES \'utf8\'');
ولی وقتی اطلاعات دیتابیس رو می خونم نامفهمومه که حتما باید utf8 رو دستی تو مرورگر درست کنم تا اطلاعات رو درست نمایش بده.
چیکار باید بکنم که نیازی به تنظیم دستی utf8 نباشه؟
ممنون

Unique
شنبه 16 مهر 1390, 17:43 عصر
حیف که دوستان زحمت جستجو به خودشون نمیدن وگرنه انقدر پست تکراری در مورد نمایش فارسی ، تاریخ فارسی ، کار با تاریخ ها و ... را شاهد نبودیم.
اما جدا از این حرف ها ، شما باید چند تا چیز را برای نمایش درست فارسی انجام بدین :
1 - فایل php را حتما به صورت utf-8 ذخیره کنین البته بدون BOM چون توی بعضی سرور ها مشکل ساز میشه
2 - حتما توی head فایل content-type را درست تعریف کنی :

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3 - زمان اتصال به پایگاه داده این دو تا خط را اجرا کنید :

mysql_query("SET NAMES 'utf8'");
mysql_query("SET character_set_connection = 'utf8'");

یا بجای دو خط بالا (که بهتره اینجوری باشه تا موقع escape کردن امنیت برای utf-8 هم اعمال بشه) :

mysql_set_charset('utf8',$link_id);

حالا اگه سیستم عامل خودتون در نمایش فارسی عاجز نباشه مشکلی نخواهید داشت !

esmahdi
شنبه 16 مهر 1390, 22:58 عصر
سلام دوست من
من همه این کارا رو قبل از اینکه تاپیک بزنم تو فروم سرچ کردم ولی باز هم به نتیجه نرسیدم کارایی رو که شما هم فرمودید انجام دادم ولی هنوز بازم مشکل دارم
آیا نیازی هست که php.ini رو هم ویرایش کنم.

Unique
یک شنبه 17 مهر 1390, 00:29 صبح
توی مثال بالای خودتون :


SET character_set_connection = 'utf8'

را نمیبینم ! در ضمن اگه اشتباه نکنم این بحث utf-8 در زمان ثبت اطلاعات یا زمانی که از توابع خود MySQL برای پردازش فیلد های فارسی استفاده میشه (مثل تابع concat) کاربرد داره و نه در زمان خوندن اطلاعات !
شما به احتمال فراوان مشکلتون از فایل php هستش !


آیا نیازی هست که php.ini رو هم ویرایش کنم
خیر php.ini ربطی به مشکل شما نداره !

میشه نمونه فایل خودتون یا print screen بدین ؟

esmahdi
دوشنبه 18 مهر 1390, 12:04 عصر
سلام خدمت دوستان
متوجه چیزی شدم
من با وجودی که کل مراحلی که دوست خوبم unique گفت انجام دادم ولی باز هم مشکلم پا بر جا بود. ولی متوجه شدم که سایت من فقط با مرورگر موزیلا و تو localhost مشکل داره. تو هاست خودم هم تست کردم با موزیلا مشکل نداشت.

مثلا کدای ساده زیر

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
echo "سلام دوستان";
?>
</body>
</html>کسی چیزی به ذهنش نمی رسه که چه طور این مشکل رو درست کنم؟
درضمن موزیلای خودمم رو هم آپدیت کردم

Keramatifar
دوشنبه 18 مهر 1390, 14:20 عصر
فایل مورد نظر را در notepad باز کنید و آنر Save As کنید و هنگام اینکار Encoding فایل را روی utf تنظیم کنید