انجمن های تخصصی علوم رایانه و هنرهای دیجیتال
مشکلات مربوط به زبان فارسی در PHP و MySQL - نسخه‌ی قابل چاپ

+- انجمن های تخصصی علوم رایانه و هنرهای دیجیتال (https://www.forum.cgaria.com)
+-- انجمن: رایانه (https://www.forum.cgaria.com/forum-236.html)
+--- انجمن: برنامه نویسی | طراحی وب (https://www.forum.cgaria.com/forum-22.html)
+---- انجمن: برنامه نویسی (https://www.forum.cgaria.com/forum-26.html)
+----- انجمن: پی اچ پی | PHP (https://www.forum.cgaria.com/forum-89.html)
+----- موضوع: مشکلات مربوط به زبان فارسی در PHP و MySQL (/thread-488.html)



مشکلات مربوط به زبان فارسی در PHP و MySQL - Mohsen Omidvar - 01-02-2014

برای حل مشکلات  مربوط به زبان فارسی در PHP و MySQL اول از هر چیز میم "م" مشکلات رو بردارید خواهی دید که شکلات echo می شود
در غیر اینصورت  
else{
با ادامه تاپیک  همراه ما باشید :


حتما برای شما هم پیش اومده که اطلاعاتی رو به زبان فارسی در جدولهای پایگاه داده MySQL با استفاده از PHP ذخیره کردین و با اینکه پایگاه داده رو با utf8 ست کردین ولی باز هم فونتهای فارسی به خوبی نمایش داده نمیشه و یا ناخواناست برای حل این مشکل بعد کد اتصال به بانک کد زیر را بنویسید :
کد php:
mysql_set_charset('utf8'); 

اگر درگیر کار با رشته‌ها در زبان پی.اچ.پی شده باشید، می‌دانید که (اگر نمیدانید الان میدانید که)بسیاری از توابع بر روی رشته‌های پارسی کار نمی‌کنند.
به طور مثال تابع substring کاراکتری به شکل لوزی و علامت سؤال در داخل آن، چاپ می‌کند و یا تابع strlen عدد درستی از طول رشته نمی‌دهد.
در بحث پایگاه داده نیز اگر charset بانک را persian_ci_utf8 یا utf8_general_ci  و ... انتخاب کرده باشید، به صورت عادی نمی‌توانید از آن خروجی بگیرید.
- رفع مشکل توابع مرتبط با رشته:
برای رفع مشکل توابع strlen و substr ابتدا قبل از کار با رشته، عبارت زیر را درج کنید:
کد php:
mb_internal_encoding('UTF-8'); 
سپس به جای استفاده از تابع substr از تابع mb_substr استفاده کنید. مثال:
کد php:
mb_substr("انجمن تخصصی علوم کامپیوتر و هنرهای دیجیتال‎",0,3);   
 
و به جای تابع strlen از تابع mb_strlen استفاده کنید. مثال:
کد php:
mb_strlen("درود‎");  // 4