PDA

View Full Version : مشکل در فراخوانی فایلهای utf-8



adnan
پنج شنبه 25 بهمن 1386, 20:27 عصر
به مشکل بسیار عجیبی برخوردم که متاسفانه هنوز برطرف نشده است . در اینترنت خیلی گشتم و راه حلی براش پیدا نکردم . امیدوارم اینجا اهل فن به من کمک کنند .

ما php را روی سرورمان ارتقا دادیم ولی متاسفانه مشکل عجیبی در Include کردن فایلهای utf-8 پیدا کردیم .

می خواهیم این فایل
http://www.epaymenthub.com/nerkh.html را در یک صفحه php ،
include کنیم .

جالب اینجاست که در unclude کردن فایلهای txt ما مشکلی نداریم . و در include کردن فایلهای html کاراکتر های فارسی به ? تبدیل می شوند !!!

فایل utf.php

<?PHP
include("nerkh.html");
?>


فایل utf.php5

<?PHP
include("test.txt");
?>


ببینید نتیجه ایندو چقدر با هم فرق می کند !!؟؟؟:گریه:
http://www.epaymenthub.com/utf.php
http://www.epaymenthub.com/utf.php5

کسی می دونه مشکل در کجاست ؟

Mah
شنبه 27 بهمن 1386, 08:39 صبح
سلام .



http://www.epaymenthub.com/utf.php



در Head این صفحه از این تگ استفاده کن .


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



موفق باشید .

adnan
یک شنبه 28 بهمن 1386, 08:15 صبح
دوست عزیز ! از این راه حل ها گذشته !!!

مشکل انکدوینگ در نمایش و browser نبود . اطلاعات خراب می شد که با کمی پرس و جو به به باگ در php پی بردم !
http://bugs.php.net/bug.php?id=40072

tabib_m
دوشنبه 29 بهمن 1386, 14:31 عصر
من که هیچ مشکلی توی این دو تا لینک ندیدم.
تنها اختلافات در این بود:
1- صفحه ی دوم، به صورت text/plain ارسال شده بود، که به راحتی میشه به text/html تبدیلش کرد.
2- صفحه ی اول، انکودینگش از اول تعیین نشده بود، که اون هم با کدی که جناب Mah گذاشت، حل میشه.

مشکل دیگه ای وجود داره؟

adnan
دوشنبه 29 بهمن 1386, 15:42 عصر
الان که مشکل رفع شده ( توسط راه حلی که در سایت php.net دیده بودم )

اگر در همان لینکی که داده بودم توجه کرده بودید چنانچه فایل php شما با انکدودینگ "
UTF-8 With Signature " ذخیرده شده باشد ، کلیه کاراکترهای شما به ??? تبدیل می شود که با هیچ انکدودینگی قابل خواندن نیست .

من نمی دانم php با چه پارامترهایی کامپایل می شود ، این باگ را بوجود میارد .

من کلیه فایلهای php ام را با "utf-8 " مجدد آپلود کردم که فعلا این مشکل را بوجود نیاره !

راه حلش اینه :
Just save file in utf-8 by don't have BOM.
How to know your file have BOM or not? Try to use notepad2 change (File
> Encoding) from "UTF-8 With Signature" to "UTF-8" and save it.

لینم مرجع : http://bugs.php.net/bug.php?id=40072