الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

جعل AJAX يدعم الغه العربيه

بدأه نوف الهاجري في 14 أكتوبر 2010 · 6 رد · 983 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

من جديد انا بمشكله

ارفق لكم مشروع

بسيط

المشكله هي بالغه العربية بملف AJAX

لايدعم العربية ويظهرها على شكل مربعات

ارجو التعديل على المرفق حتى يدعم الغه العربية

الغه العربية.rar

437177320.jpg
#2

المشكله ليست ب AJAX . المشكله بالصفحه التي تعرض البيانات، يجب تحديد ال charset الصحيحه، أنا أفضل utf-8 لذلك يمكنك وضع هذا السطر في ال head

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

بعدها تأكدي من حفظ الملف النصي باستخدام UTF-8. هناك مشكله في PHP وهي عدم تجاوزها لل BOM في ملفات ال UTF-8 ويمكن حلها باستخدام التالي:

// Reads past the UTF-8 bom if it is there. 
function fopen_utf8 ($filename, $mode) { 
    $file = @fopen($filename, $mode); 
    $bom = fread($file, 3); 
    if ($bom != b"\xEF\xBB\xBF") 
        rewind($file, 0); 
   return $file; 
}

تم تعديل هذه المشاركة بواسطة مهدي حجازي في 14 أكتوبر 2010 في 21:55

#3

ياليت تعدل على المثال

وجزاك الله خير

437177320.jpg
#4

السلام عليكم ورحمة الله

ما هي المشكلة التي تواجهينها بالضبط

لقد قمت بتجربة الكود عندي وهو يعمل مع اللغة العربية ولا يحتاج أي تعديل على الكود

المشكلة أنه عليك حفظ الملف Save.txt بترميز utf8 حتى يعمل بشكل جيد و تظهر الكتابة العربية

ومن أجل ضمان ترميز صفحة العرض إلى utf8 عليك اضافة السطر الذي وضعه الاستاذ مهدي في صفحة ajax.php

كالتالي :

<html>  
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<script>  
function ajax()   
{   
    	var request = null;   
    	if (window.XMLHttpRequest) {   
    	request = new XMLHttpRequest();   
    	} else if (window.ActiveXObject) {   
    	request = new ActiveXObject("Microsoft.XMLHTTP");   
    	}   
    	if(request)   
    	{   
    	request.open("GET", "b.php");   
    	request.onreadystatechange = function ()   
    	{   
            	if(request.readyState < 4)   
            	{   
                    	document.getElementById("main").innerHTML = '<img src="images/ajax-loader.gif" id="load" border="0" width="30px" >';   
            	}   
            	if(request.readyState == 4 && request.status == 200)   
            	{   

                    	document.getElementById("main").innerHTML = request.responseText;   
            	}   

    	}   
    	}   
    	request.send(null);   
}  
setInterval("ajax()",3000)  
</script>  
</head>  
<body>  
<div id="main">  
</div>  
</body>  
</html>

ولكن الأهم كما قلت لك حفظ الملف save.txt بترميز utf8 وذلك بعد فتح الملف بالمفكرة (Notepad) و اختيار حفظ باسم ستجدين قائمة لتحديد ترميز الملف حددي Unicode utf8

جربي ذلك و اخبرينا بالنتيجة

بتوفيق الله..

Everything will be fine when we TALK LESS, DO MORE


#5

شكرا أخي محمد، ولكن اضافه الى ذلك يجب استخدام ال function الذي وضعته في الأعلى وسأشرح السبب. بعض البرامج مثل ال Notepad في windows عند تخزين ملف UTF8 تقوم باضافه header مكون من 3 Bytes لا تقوم PHP بتجاوز هذه ال Bytes وبالتالي سيظهر أول حرف في الصفحه على شكل مربع, اما اذا كنت خزنت الملف باستخدام برنامج اخر لا يضيف هذه ال header فالكود سيعمل دون تعديل، لذلك الاضمن فتح الملف بال function في الاعلى لتجاوز المشكله كليا و عليه يكون شكل ملف b.php كالتالي:

<?php

// Reads past the UTF-8 bom if it is there. 
function fopen_utf8 ($filename, $mode) { 
    $file = @fopen($filename, $mode); 
    $bom = fread($file, 3); 
    if ($bom != b"\xEF\xBB\xBF") 
        rewind($file, 0); 

    return $file; 
} 

$file_handle = fopen_utf8("save.txt", "rb");
while (!feof($file_handle) ) {

$line_of_text = fgets($file_handle);
$line_of_text = trim($line_of_text);
$parts = explode('=', $line_of_text);

print $parts[0] . $parts[1]. "<BR>";
}

fclose($file_handle);
?>
2
#6

بارك الله بك أخي مهدي حقيقة أني استخدمت الـ gedit وقد لاحظت سابقاً أنه يقوم بالحفظ بترميز uft8 without bom ولكني نسيت ذلك tongue.gif

لذلك غابت عني ضرورة معالجة الـ bom مع الـ notepad فعلا كان يجب التنبيه إلى هذه النقطة جزاك الله خيراً

فعلى الأخت الكريمة استبدال كود صفحة b.php بكود الاستاذ مهدي لتفادي مشاكل الـ bom

أو يمكنكِ حفظ الملف مباشرة بترميز utf8 without bom و ذلك بواسطة advance editor يدعم ذلك

جزاك الله كل الخير أخي مهدي على الملاحظة, في محلها فعلاً +1 :)

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 15 أكتوبر 2010 في 11:56

Everything will be fine when we TALK LESS, DO MORE


مواضيع مشابهة