البته فک کنم مشکل ایشون در نشون دادن خود فایل json هست و در داخل فایل کاراکترهای unicode به این شکل نشون داده میشن در صورتی که ایشون میخوان متن فارسی عینا نمایش پیدا کنه
خب این مشکلی هست که در php نسخه 5.4 حل شده و اونم استفاده از آرگومان دوم هست به اسم JSON_UNESCAPED_UNICODE و بصورت زیر استفاده میشه
echo json_encode($myarr,JSON_UNESCAPED_UNICODE);
ولی بیشتر هاستها نسخه php بر روی 5.3 هست. برای حل این مشکل من راه حل زیر رو پیشنهاد میدم
1- ابتدا header رو ست کن
header('Content-Type: application/json; charset=utf-8');
2- از تابع زیر برای کارکترها استفاده کن
function jsonRemoveUnicodeSequences($struct) {
return preg_replace("/\\\\\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));
}
برنامه به شکل زیر در میاد
<?php
header('Content-Type: application/json; charset=utf-8');
function jsonRemoveUnicodeSequences($struct) {
return preg_replace("/\\\\\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));
}
$myarr = array('نمونه متن فارسی'=>'متن فارسی نمایش ئیدا میکند');
echo jsonRemoveUnicodeSequences(json_encode($myarr));
?>