نکاتی جزیی راجب نمایش صحیح حروف فارسی در PHP/MySQL
بدون استفاده از دستور mysqli_set_charset و کوئری SET NAMES utf8
اگر انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 باشه، charset دیتابیس هم utf8_persian_ci باشه خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش
اگر انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
Ø¢ ب Ù¾ ت Ø« ج Ú† Ø Ø® د ض ر ز Ø´
اگر انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
� � � � � � � � � � � � � �
اگر انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
Â È Ê Ë Ì Í Î Ï Ö Ñ Ò Ô
اگر انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 باشه، اما charset دیتابیس utf8_persian_ci "نباشه" خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش
میبینید که حتی بدون استفاده از mysqli_set_charset و SET NAMES utf8 باز هم میشه "خروجی" صحیح رو گرفت!
با استفاده از دستور mysqli_set_charset و کوئری SET NAMES utf8
اگر mysqli_set_charset و SET NAMES هردو UTF8 باشن، انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه خروجیش صحیحه و میشه این:
آ ب پ ت ث ج چ ح خ د ض ر ز ش
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
Ø¢ ب Ù¾ ت Ø« ج Ú† Ø Ø® د ض ر ز Ø´
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، charset دیتابیس utf8_persian_ci "نباشه"، و همه چیز دیگر UTF8 باشن خروجیش میشه این:
? ? ? ? ? ? ? ? ? ? ? ? ? ?
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
" "
اما برای "نمایش" درست کلمات در خود دیتابیس لازمه که از mysqli_set_charset بعد از اتصال استفاده کنید.
بدون استفاده از دستور mysqli_set_charset و کوئری SET NAMES utf8

آ ب پ ت ث ج چ ح خ د ض ر ز ش
اگر انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
Ø¢ ب Ù¾ ت Ø« ج Ú† Ø Ø® د ض ر ز Ø´
اگر انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
� � � � � � � � � � � � � �
اگر انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه/نباشه خروجیش میشه این:
Â È Ê Ë Ì Í Î Ï Ö Ñ Ò Ô

آ ب پ ت ث ج چ ح خ د ض ر ز ش
میبینید که حتی بدون استفاده از mysqli_set_charset و SET NAMES utf8 باز هم میشه "خروجی" صحیح رو گرفت!
با استفاده از دستور mysqli_set_charset و کوئری SET NAMES utf8

آ ب پ ت ث ج چ ح خ د ض ر ز ش
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، انکودینگ فایل پی اچ پی UTF8 باشه، تگ meta صفحه UTF8 "نباشه"، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
Ø¢ ب Ù¾ ت Ø« ج Ú† Ø Ø® د ض ر ز Ø´
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، charset دیتابیس utf8_persian_ci "نباشه"، و همه چیز دیگر UTF8 باشن خروجیش میشه این:
? ? ? ? ? ? ? ? ? ? ? ? ? ?
اگر مقدار دستور mysqli_set_charset و کوئری SET NAMES هردو UTF8 باشن، انکودینگ فایل پی اچ پی UTF8 "نباشه"، تگ meta صفحه UTF8 باشه، charset دیتابیس utf8_persian_ci باشه خروجیش میشه این:
" "
