نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل در نوشتن محتوای فایل json با php

  1. #1

    Question مشکل در نوشتن محتوای فایل json با php

    با عرض سلام به همگی
    برنامه نویسان محترم
    بنده با PHP یه سری کد نوشتم که از دیتابیس یه جدول رو میخونه و اونو تو html نشون میده و تو فایل json مینویسه.
    مشکل اینجاست که json نیز مانند برخی زبان ها در حالت عادی از utf-8 پشتیبانی نمیکنه.
    سیستمی که نوشتم تو html درست کار میکنه و فارسی نشون میده اما تو json درست کار نمیکنه.
    میخواستم اگه میشه کمکم کنید.(در ضمن جهت اطلاع سایت های خارجی رو گشتم نبود تو هم نگرد و هر کی خواست میتونم سورس پروژه رو هم برای دانلود بزارم.)
    http://markets.germinews.ir/json
    منتظرتون هستم...
    با احترام./

  2. #2
    کاربر دائمی آواتار 2undercover
    تاریخ عضویت
    تیر 1391
    محل زندگی
    خراسان رضوی
    پست
    1,471

    نقل قول: مشکل در نوشتن محتوای فایل json با php

    اتفاقا JSON به صورت پیش فرض از UTF-8 پشتیبانی می کنه. و اگه منظورتون این هست که کاراکتر های فارسی رو به صورت \uXXX نمایش میده این همون کد گذاری کاراکتر های UTF-8 هست و وقتی با تابع json_decode محتویات فایل JSON رو از حالت کد شده در بیارید درست میشن.

  3. #3

    نقل قول: مشکل در نوشتن محتوای فایل json با php

    البته فک کنم مشکل ایشون در نشون دادن خود فایل 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));
    ?>

  4. #4

    نقل قول: مشکل در نوشتن محتوای فایل json با php

    دوستان ممنون.
    دستتون درد نکنه.
    از راهنمایی آقا مهرداد استفاده کردم. جواب داد.

  5. #5

    نقل قول: مشکل در نوشتن محتوای فایل json با php

    سلام
    فرض کنید با استفاده از echo json_encode($myarr,JSON_UNESCAPED_UNICODE); کاراکتر های فارسی داخل فایل json نوشته شدند . بعدا برای decode کردن همین کاراکتر ها باید از چه روشی استفاده کنم ؟

تاپیک های مشابه

  1. مشکل در نوشتن در فایل
    نوشته شده توسط shaaadi در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 2
    آخرین پست: سه شنبه 02 آذر 1389, 11:21 صبح
  2. مشکل هنگام نوشتن در فایل
    نوشته شده توسط mbshareat در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 9
    آخرین پست: یک شنبه 02 آبان 1389, 20:51 عصر
  3. مشکل در نوشتن هدر فایل
    نوشته شده توسط drstrike در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 5
    آخرین پست: پنج شنبه 07 مرداد 1389, 13:27 عصر
  4. سوال: برای خوندن محتوای فایل Asp یا PHP از چی استفاده کنم؟
    نوشته شده توسط sina_saravi1 در بخش VB.NET
    پاسخ: 1
    آخرین پست: دوشنبه 02 آذر 1388, 21:48 عصر
  5. سوال: مشکل در نوشتن کامپاننت whois با زبان php برای cmsها
    نوشته شده توسط R.nosratabadi در بخش PHP
    پاسخ: 0
    آخرین پست: چهارشنبه 27 خرداد 1388, 23:00 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •