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

نام تاپیک: مشکل document.write با utf-8

  1. #1
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    مشکل document.write با utf-8

    سلام
    من یه ابزار نوشتم در این ادرس:
    http://site.ir/load/load.php
    ادرس بالا را با مرورگر کروم یا سفری یا اپرا باز کنید.
    بعد از انتخاب یکی از آیکن ها وقتی روی دکمه ی سبز رنگ پیش نمایش ابزار کلیک میکنم. یه پنجره باز میشه و یه عکس رو نشون میده. به همراه یک متن. اگه در مرورگر کروم یا سفری یا اپرا باشید حروف بهم ریخته به شما نمایش میده:
    beham.png
    ولی با اکسپلورر و فایرفاکس این مشکل رو نداشت!
    دلیل اینه این سوال رو اینجا پرسیدم برای این بود که مشکل از سمت کلاینت هست.
    یعنی مشکل من از این کد زیر در صفحه ی load.php هست:
    کد HTML:
    DispWin.document.write("<script type='text/javascript' charset='UTF-8' src='http://site.ir/load/pish.php?matne=" + matno + "&load=" + load + "&tasavir="+tasavir+"&delkhah="+delkhah+"'><\/sc" + "ript>");
    چونکه وقتی مقدار متن فارسی را ارسال میکنه به صورت utf-8 نیست!
    به اینکه از این دستور هم استفاده کردم مشکل حل نشده:
    <meta charset="utf-8">

    حتی در دستور document.write هم ازش استفاده کردم فایده ای نداره.
    برای اینکه متوجه بشم مشکل از این صفحه هست و کاری به سمت سرور نداره امدم اینطوری کردم:
    http://site/load/pish.php?matne=%D9%85%D8%AD%D9%85%D8%AF%D8%B1%D8%B 6%D8%A7&load=%22%20+%20load%20+%20%22&tasavir=%22+ tasavir+%22&delkhah=%22+delkhah+
    همینطوری که می بینید متن محمدرضا در بین کدها نمایش داده شد. پس نتیجه می گیریم که عیب از دستور document.write در صفحه ی load.php هست . که با utf-8 سازگار نیست.
    لطفا راهنماییم کنید خیلی کارم گیره.
    متشکرم.
    آخرین ویرایش به وسیله ravand : دوشنبه 21 مهر 1393 در 08:23 صبح

  2. #2

    نقل قول: مشکل document.write با utf-8

    به تگ اسکریپت چارست بدید

  3. #3
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: مشکل document.write با utf-8

    نقل قول نوشته شده توسط دانیال دزفولی نژاد مشاهده تاپیک
    به تگ اسکریپت چارست بدید
    منظورتون رو متوجه نمیشم.
    من این کاری رو که میگید کردم. کدش رو هم براتون گذاشتم:
    DispWin.document.write("<script type='text/javascript' charset='UTF-8' src='http://site.ir/project/load/pish.php?matne=" + matno + "&load=" + load + "&tasavir="+tasavir+"&delkhah="+delkhah+"'><\/sc" + "ript>");


    اینو منظورتونه؟
    <script type='text/javascript' charset='UTF-8'

    یا چیز دیگه ای منظورتون بود؟
    آخرین ویرایش به وسیله ravand : دوشنبه 21 مهر 1393 در 08:24 صبح

  4. #4
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: مشکل document.write با utf-8

    توی صفحه ای که قراره ارسال بشه این رو بنویسید :

    <?php header('Content-Type: text/html; charset=utf-8'); ?>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

  5. #5
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: مشکل document.write با utf-8

    آرزو به دلمون موند یکی درست سوال ما رو بخونه بعد جواب بده!
    شما خیلی منو مبتدی فرض کردی داداش
    بالاخره خودم تونستم سمت سرور این مشکل رو حل کنم. ولی فکر میکردم سمت کلاینت هم میشه کاری کرد.

  6. #6
    کاربر دائمی آواتار ABZiko
    تاریخ عضویت
    مرداد 1393
    محل زندگی
    مشهد
    پست
    860

    نقل قول: مشکل document.write با utf-8

    قصد توهین نداشتم عذر می خوام.

  7. #7
    کاربر دائمی آواتار ravand
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    راوند کاشان
    پست
    3,378

    نقل قول: مشکل document.write با utf-8

    نقل قول نوشته شده توسط ABZiko مشاهده تاپیک
    قصد توهین نداشتم عذر می خوام.
    نه خواهش میکنم این چه حرفیه؟
    من اعتقاد دارم هیچ کس حتی حرفه ایش نمیتونه بگه که همه چی رو در مورد برنامه نویسی میدونه . شاید ساده ترین چیزها هم باشه که برخی از حرف ای ها تا حالا باهاش برخورد نکردن.
    ببیند من در سمت سرور از این تابع استفاده کردم: mb_convert_encoding مشکل منو حل کرد ولی هکر میتونست از حملات xss استفاده کنه. پس امدم اینطوری کردم:
    <?php
    $text = "; &#1705 ;&#1606 ;&#1740 ;&#1583 ;...";
    $string = mb_convert_encoding($text, 'UTF-8', mb_detect_encoding($text));
    echo htmlentities($string, ENT_QUOTES, 'UTF-8', false);
    ?>

    بین حروف داخل متغییر text$ فاصله گذاشتم تا دیده بشه.
    از همتون بابت جواب هاتون متشکرم.

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

  1. سوال: تابع document.write چیست و چه کاربردی دارد؟
    نوشته شده توسط payamka در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 3
    آخرین پست: پنج شنبه 26 اردیبهشت 1392, 19:18 عصر
  2. document.write
    نوشته شده توسط marzbannia در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: سه شنبه 15 تیر 1389, 11:05 صبح
  3. مشکل در فراخوانی فایلهای utf-8
    نوشته شده توسط adnan در بخش PHP
    پاسخ: 4
    آخرین پست: دوشنبه 29 بهمن 1386, 15:42 عصر
  4. Document.write و خالی شدن صفحه
    نوشته شده توسط ali643 در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: دوشنبه 08 بهمن 1386, 14:59 عصر
  5. راهنمایی در مورد مشکل با فارسی و UTF-8
    نوشته شده توسط فرهاد شفق در بخش C#‎‎
    پاسخ: 12
    آخرین پست: شنبه 13 آبان 1385, 09:51 صبح

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

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