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

مشكلة في الكتابة العربي

مغلق
بدأه azizthobhan في 1 نوفمبر 2004 · 10 رد · 967 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندي مشكلة عند عرض بيانات من قاعدة بيانات فقد كان تظهر بالشكل ؟؟؟؟؟؟ ولكن تجاوزنا هذه المشكلة بوضع الكود

M_HTMLEncode2 = rswrk("G_CITY_ADES")
   	 M_HTMLEncode2 = Replace(M_HTMLEncode2,"&","^^@^^")
   	 M_HTMLEncode2 = Server.HTMLEncode(M_HTMLEncode2)
   	 M_HTMLEncode2 = Replace(M_HTMLEncode2,"^^@^^","&")

ولكن رجعت المشكلة ولكن بشكل اخر وهو ;#1576;#11608&;#1593&

في الكود التالي

<%

Set rswrk = Server.CreateObject("ADODB.Recordset")

sqlwrk ="SELECT G_DESTRCT.G_DESTRCT, G_DESTRCT.G_DEST_ADES, G_DESTRCT.G_DEST_EDES, " & _
                "G_CITY.G_CITY, G_CITY.G_CITY_ADES, G_CITY.G_CITY_EDES " & _
         "FROM G_DESTRCT INNER JOIN G_CITY ON G_DESTRCT.G_DESTRCT = G_CITY.G_DESTRCT " & _
         "Where G_DESTRCT.G_CNTRY=27; "
         

rswrk.Open sqlwrk, conn, 1, 2

If not rswrk.EOF Then
  
  ' write the manufacturers listbox...
  Response.Write "<SELECT NAME=""x_SC_LADD_DESTRCT"" " & " ONCHANGE=""fCITY01(this);"" >" & vbCrlf
  Response.Write "<OPTION value=""0"">اختر المحافظة</OPTION>" & vbCrlf

  ' write the entry code for the javascript...
  sJavaScript = "function fCITY01(elem){" & vbCrlf & _
       	 "for (var i = document.f1.x_SC_LADD_CITY." & "options.length; i > 0; i--){" & vbCrlf & _
        "document.f1.x_SC_LADD_CITY.options = null;" & vbCrlf
    
        
  ' loop through the recordset...
  Do Until rswrk.EOF
    M_HTMLEncode = rswrk("G_DEST_ADES")
   	 M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
   	 M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
   	 M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")
    ' is this a new manufacturer?
    If sLastManufacturer <> M_HTMLEncode Then
      ' if so, add an entry to the first listbox
      sLastManufacturer = M_HTMLEncode
      Response.Write "<OPTION VALUE=" & rswrk("G_DESTRCT") & ">" & sLastManufacturer & "</OPTION>" & vbCrlf
      ' and add a new section to the javascript...
      
      sJavaScript = sJavaScript & "}" & vbCrlf & _
      "if (elem.options[elem.selectedIndex].value==" & rswrk("G_DESTRCT") & "){" & vbCrlf
      
    End If
    ' and add a new x_SC_FADD_DESTRCT line to the javascript...
   	 
   	 M_HTMLEncode2 = rswrk("G_CITY_ADES")
   	 M_HTMLEncode2 = Replace(M_HTMLEncode2,"&","^^@^^")
   	 M_HTMLEncode2 = Server.HTMLEncode(M_HTMLEncode2)
   	 M_HTMLEncode2 = Replace(M_HTMLEncode2,"^^@^^","&")
     
 	 sJavaScript = sJavaScript & _
        "document.f1.x_SC_LADD_CITY.options[document." & _
        "f1.x_SC_LADD_CITY.options.length] = new Option(unescape('" & _
       	 M_HTMLEncode2  & "'),'" & rswrk("G_CITY") & "');" & vbCrlf
       	 
           	 
    rswrk.MoveNext
  Loop
  ' finish the manufacturer listbox...
  Response.Write "</SELECT>" & vbCrlf
  ' create the models listbox...
  
   
  ' put the last line on the javascript...
  ' and write it out...
  sJavaScript = sJavaScript & vbCrlf & "}" & vbCrlf & "}" & vbCrlf
  Response.Write "<SCR" & "IPT LANGUAGE=""JavaScript"">" & vbCrlf
  Response.Write sJavaScript & vbCrlf & "</SCR" & "IPT>" & vbCrlf
  
  

    
End If
rswrk.Close
Set rswrk = Nothing
%>

علما باني استخدمت الكود

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
#2

هناك عدة أسباب لهذا (من تجربتي)...

على الأرجح أن شركة الاستضافة غير عربية!! و الحل، هو استخدام كود

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

عند ادخال البيانات و عند عرضها (صفحة الادخال و صفحة العرض)... و المشكلة التي ذكرتها عادة تترافق مع قاعدة بيانات هي SQL لذلك قد يجيب أهل الخبرة في الـ SQL بطريقة أفضل مني

Mohamad Al-Karbi

www.mkarbi.me

#3

شكرا علي الرد

بالفعل الشركة المستضيفة شركة اجنبية

وقد استخدمت الكود

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

كما اخبر في السوال

وهي ليست مشكلة SQL و انما مشكلة JavaScript

ومشاكل العربي نحلها بالطريقة

M_HTMLEncode2 = rswrk("G_CITY_ADES")
    M_HTMLEncode2 = Replace(M_HTMLEncode2,"&","^^@^^")
    M_HTMLEncode2 = Server.HTMLEncode(M_HTMLEncode2)
    M_HTMLEncode2 = Replace(M_HTMLEncode2,"^^@^^","&")

في اغلب المواقع التي صممتها

ولكن المشكلة هذه الجديدة عند اسخدامي اكواد جافا سكربت

ولا يمكن ان استخدم طيقة اخري

#4

شكرا علي الرد على بسرعة

لقد حليت المشكلة بطريقي الخاصة

اذا تريدون هذا الحل انظروا في مشاركتي القادمة

#5

هل جربت <%@LANGUAGE="VBSCRIPT" CODEPAGE="1256"%>

The World Must Be Crazy

#6

لقد جربت هذا الكود

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1256"%>

ولكن السرفر طلع خطاء عند استخدامي هذا الكود

حيث السرفر ليس عربي

على العموم شكرا على التفاعل معي و الرد علي

وقد توصلت لحل وجربتة وعمل معاي

وإن شاء الله عن قريب اجيب لكم هذا الحل

#7

السلام عليكم

كيف تم الحل لديك ؟؟؟

" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------

#8

حل ؟؟؟؟

طبعا سهلة ويمكن تجاوزها و ذلك كما اجبتة في موضوع

مشكلة فى عرض العربية منAccess

للاخ الفاروق

ولكن كان مشكلتي عندما استخدم الجافا

كانت تطلع الكتابة بالشكل ;#1576;#11608&;#1593&

واليكم الحل اذا كنتم متابعين المشكلة من اولها

المشكلة كانت اني اختر دولة معينة من قائمة List اسمها x_SC_FADD_CNTRY

والمفروض عند اختيار هذه الدولة عندي قامة اخرى للمحافظات اسمها x_SC_FADD_DESTRCT فالمفروض يطلع في هذه القائمة المحافظات التابعة لهذا الدولة

ولكن كان عندي مشكة العربي فتجاوزناه بالحل السابق وهو

M_HTMLEncode = rswrk("G_DEST_ADES")
    M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
    M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
    M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")

ولكن عندما اخزن هذه القئمة في القائمة الاخرى بهذا الشكل كانت تطلع الكتابة بالشكل

;#1576;#11608&;#1593& طبعا عندما استخدم الجافا سكربت

فكان الحل اني اضع قائمة اخرى للمحافظات FADD_DESTRCT

واخزن جميع القيم لها واربطاها بالدول

ولا اطيل عليكم هذا الحل و اذا اي استفسار ارجوا التواصل

<html dir="rtl">

<head>
<script>
function SplitDemo(mString,mIndex)
{
  ss = mString.split("-");
//  document.write(ss[mIndex]);
  return(ss[mIndex]);
}



var i=0;



function Choose(){
	if(document.f1.x_SC_FADD_CNTRY.selectedIndex==0){
  document.f1.x_SC_FADD_DESTRCT.length=1;
  document.f1.x_SC_FADD_DESTRCT.options[0].value=-1;
  document.f1.x_SC_FADD_DESTRCT.options[0].text="اختر المحافظة";
	}else{
  document.f1.x_SC_FADD_DESTRCT.length=0;
  var i=document.f1.x_SC_FADD_CNTRY.selectedIndex;
  var x=document.f1.x_SC_FADD_CNTRY.options.value;
    
  document.f1.FADD_DESTRCT.selectedIndex=0;
  var y=document.f1.FADD_DESTRCT.length;
//--------------------------------------------------------  
  var mLength=1;
  for(var j=0;j<=y-1;j++){
 	 xxx=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,0);
 	 if (x==parseInt(xxx)){
    mLength+=1;
 	 }
  }
//--------------------------------------------------------  
  document.f1.x_SC_FADD_DESTRCT.length=mLength;
  var m=1;
  document.f1.FADD_DESTRCT.selectedIndex=0;
  for(var j=0;j<=y-1;j++){
 	 xx=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,0);
 	 xx1=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,1);
 	 if (j==0){
    document.f1.x_SC_FADD_DESTRCT.options[0].value=document.f1.FADD_DESTRCT.options[j].value;
    document.f1.x_SC_FADD_DESTRCT.options[0].text=document.f1.FADD_DESTRCT.options[j].text;
 	 }
 	 if (x==parseInt(xx)){
    document.f1.x_SC_FADD_DESTRCT.options[m].value=parseInt(xx1);
    document.f1.x_SC_FADD_DESTRCT.options[m].text=document.f1.FADD_DESTRCT.options[j].text;
    m+=1;
 	 }
  }
	}
}

    </script>

</head>

<body topmargin="0" leftmargin="5">

<SELECT name="x_SC_FADD_CNTRY"  onchange=Choose(); >
<OPTION value="">اختر البلد</OPTION>
<%
x_SC_FADD_CNTRYList = ""
sqlwrk = "SELECT [G_CNTRY], [G_CNTRY_ADES] FROM [G_CNTRY] ORDER BY [G_CNTRY]"
Set rswrk = Server.CreateObject("ADODB.Recordset")
rswrk.Open sqlwrk, conn, 1, 2
If Not rswrk.EOF Then
    datawrk = rswrk.GetRows
    rowswrk = UBound(datawrk, 2)
    For rowcntwrk = 0 To rowswrk
   	 M_HTMLEncode = datawrk(1, rowcntwrk)
   	 M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
   	 M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
   	 M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")
   	 
        x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & "<OPTION value='" & datawrk(0, rowcntwrk) & "'"
        If datawrk(0, rowcntwrk) = x_SC_FADD_CNTRY Then
            x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & " selected"
        End If
        x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & ">" & M_HTMLEncode & "</option>"
    Next
End If
rswrk.Close
Set rswrk = Nothing
x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & ""
response.write x_SC_FADD_CNTRYList
%>

</SELECT>

<SELECT name="x_SC_FADD_DESTRCT" onchange=Choose2();>
<OPTION value="">اختر المحافظة</OPTION>

</SELECT>

<SELECT name="FADD_DESTRCT" style="VISIBILITY: hidden">
<OPTION value="">اختر المحافظة</OPTION>

<%
x_SC_FADD_DESTRCTList = ""
sqlwrk = "SELECT (str([G_CNTRY])+'-'+str([G_DESTRCT])) as id, [G_DEST_ADES] FROM [G_DESTRCT] ORDER BY [G_CNTRY],[G_DESTRCT]"


Set rswrk = Server.CreateObject("ADODB.Recordset")
rswrk.Open sqlwrk, conn, 1, 2
If Not rswrk.EOF Then
    datawrk = rswrk.GetRows
    rowswrk = UBound(datawrk, 2)
    For rowcntwrk = 0 To rowswrk
   	 M_HTMLEncode = datawrk(1, rowcntwrk)
   	 M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
   	 M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
   	 M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")
   	 
        x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & "<OPTION value='" & datawrk(0, rowcntwrk) & "'"
        If datawrk(0, rowcntwrk) = x_SC_FADD_DESTRCT Then
            x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & " selected"
        End If
        x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & ">" & M_HTMLEncode & "</option>"
    Next
End If
rswrk.Close
Set rswrk = Nothing
x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & ""
response.write x_SC_FADD_DESTRCTList
%>

</SELECT>

</body>

</html>

تم تعديل هذه المشاركة بواسطة azizthobhan في 21 نوفمبر 2004 في 20:16

#9
<html dir="rtl">

<head>
<script>
function SplitDemo(mString,mIndex)
{
ss = mString.split("-");
// document.write(ss[mIndex]);
return(ss[mIndex]);
}



var i=0;



function Choose(){
if(document.f1.x_SC_FADD_CNTRY.selectedIndex==0){
document.f1.x_SC_FADD_DESTRCT.length=1;
document.f1.x_SC_FADD_DESTRCT.options[0].value=-1;
document.f1.x_SC_FADD_DESTRCT.options[0].text="اختر المحافظة";
}else{
document.f1.x_SC_FADD_DESTRCT.length=0;
var i=document.f1.x_SC_FADD_CNTRY.selectedIndex;
var x=document.f1.x_SC_FADD_CNTRY.options.value;

document.f1.FADD_DESTRCT.selectedIndex=0;
var y=document.f1.FADD_DESTRCT.length;
//-------------------------------------------------------- 
var mLength=1;
for(var j=0;j<=y-1;j++){
xxx=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,0);
if (x==parseInt(xxx)){
mLength+=1;
}
}
//-------------------------------------------------------- 
document.f1.x_SC_FADD_DESTRCT.length=mLength;
var m=1;
document.f1.FADD_DESTRCT.selectedIndex=0;
for(var j=0;j<=y-1;j++){
xx=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,0);
xx1=SplitDemo(document.f1.FADD_DESTRCT.options[j].value,1);
if (j==0){
document.f1.x_SC_FADD_DESTRCT.options[0].value=document.f1.FADD_DESTRCT.options[j].value;
document.f1.x_SC_FADD_DESTRCT.options[0].text=document.f1.FADD_DESTRCT.options[j].text;
}
if (x==parseInt(xx)){
document.f1.x_SC_FADD_DESTRCT.options[m].value=parseInt(xx1);
document.f1.x_SC_FADD_DESTRCT.options[m].text=document.f1.FADD_DESTRCT.options[j].text;
m+=1;
}
}
}
}

</script>

</head>

<body topmargin="0" leftmargin="5">

<SELECT name="x_SC_FADD_CNTRY" onchange=Choose(); >
<OPTION value="">اختر البلد</OPTION>
<%
x_SC_FADD_CNTRYList = ""
sqlwrk = "SELECT [G_CNTRY], [G_CNTRY_ADES] FROM [G_CNTRY] ORDER BY [G_CNTRY]"
Set rswrk = Server.CreateObject("ADODB.Recordset")
rswrk.Open sqlwrk, conn, 1, 2
If Not rswrk.EOF Then
datawrk = rswrk.GetRows
rowswrk = UBound(datawrk, 2)
For rowcntwrk = 0 To rowswrk
M_HTMLEncode = datawrk(1, rowcntwrk)
M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")

x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & "<OPTION value='" & datawrk(0, rowcntwrk) & "'"
If datawrk(0, rowcntwrk) = x_SC_FADD_CNTRY Then
x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & " selected"
End If
x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & ">" & M_HTMLEncode & "</option>"
Next
End If
rswrk.Close
Set rswrk = Nothing
x_SC_FADD_CNTRYList = x_SC_FADD_CNTRYList & ""
response.write x_SC_FADD_CNTRYList
%>

</SELECT>

<SELECT name="x_SC_FADD_DESTRCT" onchange=Choose2();>
<OPTION value="">اختر المحافظة</OPTION>

</SELECT>

<SELECT name="FADD_DESTRCT" style="VISIBILITY: hidden">
<OPTION value="">اختر المحافظة</OPTION>

<%
x_SC_FADD_DESTRCTList = ""
sqlwrk = "SELECT (str([G_CNTRY])+'-'+str([G_DESTRCT])) as id, [G_DEST_ADES] FROM [G_DESTRCT] ORDER BY [G_CNTRY],[G_DESTRCT]"


Set rswrk = Server.CreateObject("ADODB.Recordset")
rswrk.Open sqlwrk, conn, 1, 2
If Not rswrk.EOF Then
datawrk = rswrk.GetRows
rowswrk = UBound(datawrk, 2)
For rowcntwrk = 0 To rowswrk
M_HTMLEncode = datawrk(1, rowcntwrk)
M_HTMLEncode = Replace(M_HTMLEncode,"&","^^@^^")
M_HTMLEncode = Server.HTMLEncode(M_HTMLEncode)
M_HTMLEncode = Replace(M_HTMLEncode,"^^@^^","&")

x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & "<OPTION value='" & datawrk(0, rowcntwrk) & "'"
If datawrk(0, rowcntwrk) = x_SC_FADD_DESTRCT Then
x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & " selected"
End If
x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & ">" & M_HTMLEncode & "</option>"
Next
End If
rswrk.Close
Set rswrk = Nothing
x_SC_FADD_DESTRCTList = x_SC_FADD_DESTRCTList & ""
response.write x_SC_FADD_DESTRCTList
%>

</SELECT>

</body>

</html>
#10

شكراً لك أخي azizthobhan لتوضيح المسألة، جزاك الله خيراًً

Mohamad Al-Karbi

www.mkarbi.me

#11

السلام عليكم

مشكور

" وما توفيقى إلا بالله عليه توكلت وإليه أنيب "
-------------------------------------------------
قل : " لا حول ولا قوة إلا بالله "
-------------------------------------------------

هذا الموضوع مغلق.

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