با سلام خدمت دوستان عزیز
من اخیران سایتی رو که به هیچ وجه cms مشهوری نیست رو به فارسی ترجمه کرده ام برای کاربرد خودم
تمامی اطلاعات وبسیات به خوبی و درست با استفاده از
?php ini_set('default_charset','utf-8'); header('Content-type: text/html; charset=utf-8'); ?>
درست شد
فقط مشکل در زمان ذخیره اطلاعت و خوندن اطلاعات از روی دیتا بیس است
یعنی در واقع گویا باید کدی در قسمت نوشتن و خواندن دیتابیس وارد بشه که اطلاعات رو به صورت utf8 ذخیره کنه و بخونه
همچنین باید بگم که دیتا بیس هارو به utf 8 تغییر دادم
لینک سوال در stackoverflow.com
php - Data in MySQL database doesn't show correctly in website - Stack Overflow (http://stackoverflow.com/questions/18645425/data-in-mysql-database-doesnt-show-correctly-in-website)
تشکر ویژه از پاسخ هایه احتمالی شما دارم
PayamResun.Ir
September 6th, 2013, 15:42
با سلام و وقت بخیر
پیشنهاد می کنم 2 تا کار انجام بدین :
1- تمامی Collation های تیبل های پایگاه داده رو بر روی utf8_general_ci قرار بدین تا در دیتا بیس مشکلی بر نخورین
2- بهتره تمامی فایل هاتون رو هم با notepad++ باز کنین و از منوی Encoding تمامی فایل ها رو بر روی Encode in UTF-8 without BOM قرار بدین تا فایل هاتون هم بدون مشکل اجرا بشن...
موفق و پیروز باشید
hkh
September 6th, 2013, 15:57
نه تصور میکنم که منظور رو متوجه نشدید
فایها درست نمایش داده میشن
اطلاعات دیتا بیس ها درست نمایش داده نمیشن
یعنی سایت وقتی میخواد اطلاعات رو در دیتا بیس ذخیره کنه این اطلاعات رو به صورت UTF-8 دخیره نمیکنه
و همچنین وقتی میخواد اونهارو بخونه اینطور نمیخونه
اشکال کار در برقراری ارتباط mysql هست
PayamResun.Ir
September 6th, 2013, 16:18
با سلام مجدد
برای برقراری با MySql از کد زیر استفاده فرمایید تا مشکلتون حل بشه :
$link=mysql_connect("localhost","UserName","Password") or die(mysql_error());
mysql_set_charset("utf8",$link);
mysql_select_db("DataBase Name") or die(mysql_error());
مشکلی بود در خدمتتون هستم
موفق و پیروز باشید
hkh
September 6th, 2013, 16:41
mysql_connect($db_host, $db_user, $db_pass) or die('A Mysql connection could not be made.');
mysql_set_charset("utf8",$link);
به این صورت ؟
خیر جواب نمیده
PayamResun.Ir
September 6th, 2013, 16:48
وارد mysqlتون بشید ببینید داده ها به چه شکل ذخیره شده اند ؟
رشته هاتون رو از طریق تابع utf8_encode اینکد کنید ببینید مشکل حل میشه ؟
این متا تگ رو به هدرتون اضافه کنید تا نمایشش هم مشکلی داشته باشه :
داده ها به صورت UTf8 دخیره نمیشن
فک کنم به latin1 تغییر میکنند
این متا تگ رو قبلا اضافه کردم
همونطور که عزض کردم مشکل تو وارد کردن دیتا و خوندنشون هست
شته هاتون رو از طریق تابع utf8_encode اینکد کنید ببینید مشکل حل میشه ؟ منظورتون چیه ؟
PayamResun.Ir
September 6th, 2013, 17:02
دوست عیز مشکل شما این هستش که داده هاتون latin1 هستند، باید utf8 ذخیره بشن تا مشکلی برای نمایش و ذخیره نداشته باشن...
اون تابعی که خدمتتون عرض کردم هم به این روش استفاده میشه :
$string = utf8_encode($string);
و رشته $string به راحتی به utf8 تبدیل میشه...
hkh
September 6th, 2013, 17:04
ببینید , من اطلاعات چندانی در مورد php و یا Sql و این مسایل ندارم
String$ که میفرمایید رو چطور باید به کار ببرم ؟
نمونه بدین یا بگین چه کدی رو کجا بزنم و این مسایل :دی
PayamResun.Ir
September 6th, 2013, 17:09
فکر کنید داده ای که در هنگام نمایش به مشکل خورده در متغیر $string قرار داده شده، حال برا تبدیل اینکودینگ این داده به utf8 به این شکل ازش استفاده می کنیم :
$string="سلام من یه رشته ی خوشگل هستم";
$string = utf8_encode($string);
امیدوارم تونسته باشم منظورمو برسونم، اگر مشکلتون حل نشد قسمتی از سورس جایی که مشکل داره رو بزارید تا همینجا براتون مشکلش رو حل کنم...