פורסם 2006 במאי 2819 שנים שלום,אני מנסה להכניס למסד הנתונים שלי נתונים ע"י כך שאני לא אצטרך לטעון דף אחר.הבעיה היא שהנתונים הנכנסים למסד הנתונים מופיעים בשלל צורות כמו:©ž©×ž©הקוד הבא הוא הסקריפט בצד הלקוח (עמוד HTML):<script language="javascript">function AjaxTest(id,id2){ if(!id){getInfo.innerHTML="";return} getInfo.innerHTML=GetXmlResponse("sA="+id+"&sB="+id2, "test.asp",true)} function GetXmlResponse(DataToSend, URL, bText){ var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); xmlhttp.Open("POST",URL + '?rand='+ Math.random() ,false); xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlhttp.send(DataToSend); return(bText?xmlhttp.responseText:xmlhttp.responseXML);}</script>דף ה HTML מכיל:<html xmlns="[url]http://www.w3.org/1999/xhtml"[/url] xml:lang="he" ><meta http-equiv="Content-Type" content="text/html; charset=utf-8">כמו כן ניסיתי לשים את הקונטנט כמו פה:<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">אך זה לא עזר.דף השרת:<%sA = request.Form("sA")sB = request.Form("sB")Response.ContentType="text/xml"sSQL = "INSERT INTO `tbl_Test` ( `a`,`b`) VALUES ( '" & sA & "','" & sB & "');"objConn.Execute sSQL objConn.Close set objConn = Nothingif sA = "ש" thenResponse.Write("שלום")elseResponse.Write("aaa1")end if %>*הפתיחה של מסד הנתונים הושמטה בכוונה. התנאי בסוף הקוד הוא כדי לבדוק אם העמוד מבין את מה שאני שולח לו ולבדוק אם הוא מחזיר עברית תקינה. החלק הזה עובד.ניסיתי עם ובלי:<%@LANGUAGE="VBSCRIPT" CODEPAGE="1255"%>והתוצאה הייתה זהה.שימוש בשיטה הישנה עובדת נהדר והנתונים במסד הנתונים מופיעים בעברית כמו שצריך.**עדכון:אם אני עושה שימוש בקוד הבא:<script>var xmlHttpfunction showCustomer(str){ var url="test.asp?sid=" + Math.random() + "&q=" + strxmlHttp=GetXmlHttpObject(stateChanged)xmlHttp.open("GET", url , true)xmlHttp.send(null)} function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ document.getElementById("getInfo").innerHTML=xmlHttp.responseText } } function GetXmlHttpObject(handler){ var objXmlHttp=nullif (navigator.userAgent.indexOf("Opera")>=0){alert("This example doesn't work in Opera") return }if (navigator.userAgent.indexOf("MSIE")>=0){ var strName="Msxml2.XMLHTTP"if (navigator.appVersion.indexOf("MSIE 5.5")>=0){strName="Microsoft.XMLHTTP"} try{ objXmlHttp=new ActiveXObject(strName)objXmlHttp.onreadystatechange=handler return objXmlHttp} catch(e){ alert("Error. Scripting for ActiveX might be disabled") return } } if (navigator.userAgent.indexOf("Mozilla")>=0){objXmlHttp=new XMLHttpRequest()objXmlHttp.onload=handlerobjXmlHttp.onerror=handler return objXmlHttp}} </script>אני מקבל את הנתונים במסד הנתונים בעברית, אבל... התנאי בדיקה בסוף לא עובד. הוא לא מזהה שהאות ש=ש.יש למישהו רעיון ?
פורסם 2006 במאי 2819 שנים הייתה לי בידיוק אותה הבעיה. היא נפתרה ע"י השמת הCODEPAGE בתג שמורה לשרת שאתה משתמש בVBSCRIPT וע"י השמת התגMETA עם הCODEPAGE בדף שאתה שולח ממנו את הנתונים. אני לא יכול להצביע בידיוק על הפתרון(מכיוון שניסיתי את שניהם ביחד).
פורסם 2006 במאי 2819 שנים מחבר לפעמים אני מקבל שגיאה של:System error: - 1072896748שזה לפי חיפוש בגוגל תוצאה של העברית שעמוד מנסה לקבל.
פורסם 2006 במאי 2819 שנים דבר אחד חשוב לא רשמת - באיזה קידוד מאוחסנים הנתונים על מסד הנתונים?כל עוד תשמור על עקביות בכל הרמות - בDB, בVB, בXML ובHTML הכל אמור לעבוד.דרך אגב, לא חסר לך Response.charset=XXX בצד השרת?
פורסם 2006 במאי 2819 שנים החלק הזה עובד....אבל... התנאי בדיקה בסוף לא עובד. הוא לא מזהה שהאות ש=ש.עובד או לא עובד? בכל מקרה, תבדוק איך הוא מציג לך את מה שהכנסת במסד הנתונים. אם אתה רואה גיבריש, סימני שאלה או עברית.
פורסם 2006 במאי 2919 שנים מחבר טוב, לאט לאט העניינים מתחילים להסתדר.בדף ה asp הוספתי:response.Charset="iso-8859-8"ועכשיו אני מקבל את העברית ממסד הנתונים כמו שצריך, כמו כן ההכנסה למסד הנתונים עובדת טוב.עכשיו נותרה רק עוד בעיה אחת והיא בקוד הבא:if sQ = "ש" then Response.Write("שלום")else Response.Write(sQ & " | ") Response.Write("ש | ") Response.Write(objRs("test")) Response.Write(" | aaa1")end if מה שאני מקבל כתשובה לקלט "ש" זה:ש | © | עכדעשגעכגשכעגש | aaa1כלומר האות "ש" שאני רוצה להחזיר מדף ה asp לא בקידוד הנכון.כל השאר תקין.הטקסט המופיע במסד הנתונים נשלף בסדר וכמו כן הקלט שנתתי נראה בסדר.אם אני מוסיף בדף ה asp את:<%@LANGUAGE="VBSCRIPT" CODEPAGE="1255"%>אז בנוסף הטקסט שאני שולף ממסד הנתונים מגיע כסימני שאלה, לכן אני לא רושם את זה שם.
פורסם 2006 במאי 2919 שנים תנסה לשמור על עקביות בקידוד שלך. אל תערבב בין ה1255 של הWIN לבין הISO. תבחר אחד ותשתמש רק בו.
פורסם 2006 במאי 2919 שנים מחבר טוף חברים, עכשיו זה עובד כמו שצריך. הבעיה הייתה די מפגרת. אני משתמש ב Dreamweaver עד כמה שהתוכנה הזו נוחה היא עושה צרות עם עברית לפעמים. כל מה שהייתי צריך לעשות זה לעשות שינוי ב Title/Encoding בתוכנה וזה עבד (למרות שלא ראיתי כל שינוי בקוד של דף ה asp)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.