PDA

View Full Version : بازهم مشکل php با فارسی



proSPY
یک شنبه 05 دی 1389, 03:38 صبح
سلام
یک مشکل پیدا کردم اینکه :
داده هایی که توی phpmyadmin بصورت فارسی وارد کردم
وقتی که از طریق php اون ها رو میخونم بصورت ؟؟؟؟؟ نشون میده .
کسی راه حلی رو سراغ نداره؟
در ضمن collation ها و خود صفحه utf-8 هستش
متشکر

Mah
یک شنبه 05 دی 1389, 08:12 صبح
سلام .

صفحه :


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


mysql_query("SET CHARACTER SET 'utf8'", $connection);
mysql_query("SET NAMES 'utf8'", $connection);
collation DB :

utf8_persian_ciاگر تمامی این تنظیمات اعمال شده باشد نباید مشکلی داشته باشی .
اگر باز هم مشکل داشتی نمونه کدت را بگذار تا بررسی بشه .

eshpilen
یک شنبه 05 دی 1389, 08:40 صبح
تاجایی که میدونم، از دستور SET NAMES 'utf8' و SET CHARACTER SET 'utf8' نباید همزمان استفاده کرد. چون دستور اول درواقع کار دستور دوم رو هم انجام میده، اما دستور دوم میتونه اثر بقیهء کارهای دستور اول رو از بین ببره. درواقع SET NAMES 'utf8' یک دستور کلی هست که کار چند نوع از دستورات/تنظیمات دیگه رو انجام میده و اونای دیگه فقط موقعی نیاز هستن که بخواید تنها یکی از اون تنظیمات رو تغییر بدید.
منبع: رفرنس MySQL سری ۴

vimax65
یک شنبه 05 دی 1389, 10:43 صبح
سلام
اگر دیتابیست یونیکده
پس مشکل از فایلته ببین جایی که خروجی میده از چی استفاده کردی؟
اگر از substr هست از mb_substr استفاده کن یعنی اینجوری مثلا:

<?php echo substr($row_rsln['title'],0,50)."..."; ?>

تغییر به:


<?php echo mb_substr($row_rsln['title'],0,50,'UTF-8')."..."; ?>

همونطور که می بینی به mb_substr و utf-8 اضافه شده 100% مشکلت حل میشه

خود صفحه ی تو هم باید روی یونیکد ذخیره شده باشه